crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 6:37