Russian Qt Forum
Ноябрь 25, 2024, 10:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание и добавление окон в QMdiArea  (Прочитано 7052 раз)
bynet
Гость
« : Ноябрь 02, 2010, 12:26 »

оздаю главное окно 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();
}

Рисунок:
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Ноябрь 02, 2010, 15:30 »

Хм, присоединяюсь к вопросу. Внезапно я осознал что и мне надо именно так  Веселый

Есть большое подозрение, что без страшных костылей здесь не обойтись (
Записан

Гугль в помощь
Странник
Гость
« Ответ #2 : Январь 28, 2011, 15:03 »

возможно уже неактуально, но на всякий случай = )
есть такая запрятанная фича, как QMdiArea::setOption ( QMdiArea::DontMaximizeSubWindowOnActivation, true )
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Январь 28, 2011, 22:53 »

надо не виджет показывать поверх субокна, а ещё одно субокно, либо модальный диалог, и размеры задавать не главному виджету субокна, а самому субокну
Записан

Юра.
Странник
Гость
« Ответ #4 : Февраль 01, 2011, 11:23 »

надо не виджет показывать поверх субокна, а ещё одно субокно, либо модальный диалог, и размеры задавать не главному виджету субокна, а самому субокну
если создавать субокно, необходимо использовать QMdiArea::setOption ( QMdiArea::DontMaximizeSubWindowOnActivation, true ) как я писал выше. при наличии развернутого mdi-окна без опции QMdiArea::DontMaximizeSubWindowOnActivation все остальные mdi-окна так же будут разворачиваться при активации.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 23.