crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Создание и добавление окон в QMdiArea, Как реализовать?
bynet
  опции профиля:
сообщение 2.11.2010, 12:16
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Создаю главное окно QMainWindow. Затем устанавливаю центральный виджет QMdiArea. Есть другой класс ClientWindow: QMainWindow.
Добавляю ClientWindow в Mdiarea. Разварачиваю clientwindow максимально. У clientwindow есть кнопка по нажатии которой поверх этого окна должно дабавится Qwidget. Все работает. Но Qwidget тоже разварачивает максимально. Если сварачиваю то сварачиваются 2.

Как сделать чтобы qwidget был размером 200 на 200(некакие ресайзыне не помагают), а clientwindow был развернут максимально?

Код:
#include <QtGui>
#include "mainwindow.h"

MainWindow::MainWindow()
{

    createActions();
    createMenus();
    mdiArea = new QMdiArea();
  //  mdiArea->setViewMode(QMdiArea::TabbedView);
    setCentralWidget(mdiArea);
    setWindowTitle(trUtf8("аорпм"));
    showMaximized();

}


MainWindow::~MainWindow()
{

}


void MainWindow::createActions()
{
    spClient = new QAction(trUtf8("Клиенты"),this);
    connect(spClient,SIGNAL(triggered()),this,SLOT(spClientShow()));

}

void MainWindow::createMenus()
{
    spMenu = menuBar()->addMenu(trUtf8("Справочники"));
    spMenu->addAction(spClient);

}

void MainWindow::spClientShow()
{
    clWindow = new ClientWindow;
    mdiArea->addSubWindow(clWindow);
    connect(clWindow->getAddAction(),SIGNAL(triggered()),this,SLOT(spShShow()));
    clWindow->setWindowTitle(trUtf8("Клиенты"));
    clWindow->showMaximized();

}

void MainWindow::spShShow()
{
    QWidget *wgt = new QWidget();
    mdiArea->addSubWindow(wgt);
    wgt->show();
}


Скриншот:
Прикрепленное изображение


Сообщение отредактировал bynet - 2.11.2010, 12:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
wiz29
  опции профиля:
сообщение 2.11.2010, 13:49
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


по моему не совсем правильно создается дочернее окно для МДИ области.
у меня делается так
.............................
        QMdiSubWindow*        wnd(new QMdiSubWindow);
        QWidget* pWidget(new MyWidget(pMdiArea));
.............................
        wnd->setWidget(pWidget);
    wnd->setAttribute(Qt::WA_DeleteOnClose);//опционально
    pMdiArea->addSubWindow(wnd);
    wnd->show();
.............................


у меня сворачивается одно дочернее окно, если их несколько.

у окна которое добавляется "поверх", "кто парент виджет"?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.12.2024, 5:04