Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QMDI проблема с начальным размером виджета

Автор: Litkevich Yuriy 24.2.2010, 14:40

Переделал пример MDI, под свои нужды, в качестве дочернего окна используется наследник QWidget.
Всю голову себе сломал, как заставить дочернее окна принять нужный размер. Например классическая установка:

child->resize(150, 150);
child->show();
не меняет ни чего, дочернее окна всегда создаётся с минимально возможным (определяемым содержимым) размером.

Проверял на Qt 4.4.3 и Qt 4.6.0 (MinGW)

Автор: DEADHUNT 24.2.2010, 14:44

QMdiSubWindow::resize не пробовал?

Автор: Litkevich Yuriy 24.2.2010, 15:08

Цитата(DEADHUNT @ 24.2.2010, 17:44) *
QMdiSubWindow::resize не пробовал?
неа, не пробовал, сейчас попробую

Хм, у этого класса нет такого метода (не переопределён из QWidget)

Да и потом, я располагаю указателем на окно (QWidget), и искать его через mdiArea->subWindowList() и т.д. по моему, не самый удачный вариант.

Автор: DEADHUNT 24.2.2010, 16:05

а как же у тебя окна добавляются? надо создать QMdiSubWindow, потом установить widget через setWidget. можно виджет создать над этим QMdiSubWindow и получать к нему доступ через QWidget::parent().

Автор: Litkevich Yuriy 24.2.2010, 16:26

Цитата(DEADHUNT @ 24.2.2010, 19:05) *
а как же у тебя окна добавляются? надо создать QMdiSubWindow, потом установить widget через setWidget.
Это не у меня это у тролей. Смотри функцию void MainWindow::open() в примере %QTDIR%\examples\mainwindows\mdi\mainwindow.cpp

Там в функции MdiChild *MainWindow::createMdiChild() так добавляется в MDI-область:
    MdiChild *child = new MdiChild;
    mdiArea->addSubWindow(child);

Автор: Litkevich Yuriy 24.2.2010, 16:57

Нашёл такой выход из положения:
в функции MdiChild *MainWindow::createMdiChild() для QMdiSubWindow делаю ресайз:

    MdiChild *child = new MdiChild;
    mdiArea->addSubWindow(child)->resize(350, 300);
Всё таки странно это всё как-то работает. У меня у виджета и sizeHint был переопределён и minmumSizeHint, никак не помогает.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)