Russian Qt Forum
Мая 15, 2025, 01:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание и добавление окон в QMdiArea  (Прочитано 7201 раз)
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.036 секунд. Запросов: 20.