crossplatform.ru

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


  Ответ в QMDI проблема с начальным размером виджета
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 24.2.2010, 16:57
  Нашёл такой выход из положения:
в функции MdiChild *MainWindow::createMdiChild() для QMdiSubWindow делаю ресайз:
    MdiChild *child = new MdiChild;
    mdiArea->addSubWindow(child)->resize(350, 300);
Всё таки странно это всё как-то работает. У меня у виджета и sizeHint был переопределён и minmumSizeHint, никак не помогает.
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);
DEADHUNT Дата 24.2.2010, 16:05
  а как же у тебя окна добавляются? надо создать QMdiSubWindow, потом установить widget через setWidget. можно виджет создать над этим QMdiSubWindow и получать к нему доступ через QWidget::parent().
Litkevich Yuriy Дата 24.2.2010, 15:08
 
Цитата(DEADHUNT @ 24.2.2010, 17:44) *
QMdiSubWindow::resize не пробовал?
неа, не пробовал, сейчас попробую

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

Да и потом, я располагаю указателем на окно (QWidget), и искать его через mdiArea->subWindowList() и т.д. по моему, не самый удачный вариант.
DEADHUNT Дата 24.2.2010, 14:44
  QMdiSubWindow::resize не пробовал?
Litkevich Yuriy Дата 24.2.2010, 14:40
  Переделал пример MDI, под свои нужды, в качестве дочернего окна используется наследник QWidget.
Всю голову себе сломал, как заставить дочернее окна принять нужный размер. Например классическая установка:
child->resize(150, 150);
child->show();
не меняет ни чего, дочернее окна всегда создаётся с минимально возможным (определяемым содержимым) размером.

Проверял на Qt 4.4.3 и Qt 4.6.0 (MinGW)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 19:51