QMDI проблема с начальным размером виджета |
Здравствуйте, гость ( Вход | Регистрация )
QMDI проблема с начальным размером виджета |
Litkevich Yuriy |
24.2.2010, 14:40
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Переделал пример MDI, под свои нужды, в качестве дочернего окна используется наследник QWidget.
Всю голову себе сломал, как заставить дочернее окна принять нужный размер. Например классическая установка: не меняет ни чего, дочернее окна всегда создаётся с минимально возможным (определяемым содержимым) размером.Проверял на Qt 4.4.3 и Qt 4.6.0 (MinGW) |
|
|
DEADHUNT |
24.2.2010, 14:44
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
QMdiSubWindow::resize не пробовал?
|
|
|
Litkevich Yuriy |
24.2.2010, 15:08
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
QMdiSubWindow::resize не пробовал? неа, не пробовал, сейчас попробуюХм, у этого класса нет такого метода (не переопределён из QWidget) Да и потом, я располагаю указателем на окно (QWidget), и искать его через mdiArea->subWindowList() и т.д. по моему, не самый удачный вариант. |
|
|
DEADHUNT |
24.2.2010, 16:05
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
а как же у тебя окна добавляются? надо создать QMdiSubWindow, потом установить widget через setWidget. можно виджет создать над этим QMdiSubWindow и получать к нему доступ через QWidget::parent().
Сообщение отредактировал DEADHUNT - 24.2.2010, 16:06 |
|
|
Litkevich Yuriy |
24.2.2010, 16:26
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а как же у тебя окна добавляются? надо создать QMdiSubWindow, потом установить widget через setWidget. Это не у меня это у тролей. Смотри функцию void MainWindow::open() в примере %QTDIR%\examples\mainwindows\mdi\mainwindow.cppТам в функции MdiChild *MainWindow::createMdiChild() так добавляется в MDI-область:
|
|
|
Litkevich Yuriy |
24.2.2010, 16:57
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Нашёл такой выход из положения:
в функции MdiChild *MainWindow::createMdiChild() для QMdiSubWindow делаю ресайз: Всё таки странно это всё как-то работает. У меня у виджета и sizeHint был переопределён и minmumSizeHint, никак не помогает.
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 3:05 |