Как изменить размер QMdiArea вместе с главным окном? - PullRequest
2 голосов
/ 07 апреля 2010

Я создал приложение MDI (используя Qt 4.6) в Qt Creator и добавил к нему QMdiArea. Теперь, если я создаю новые дочерние окна, они создаются внутри mdiArea. Это совершенно нормально. Однако mdiArea имеет фиксированный размер, который не выровнен по отношению к главному окну и не изменился, если основное окно изменилось.

То, что я ищу, это самый простой способ:
1) установить начальный размер mdiArea, который будет унаследован от главного окна, и
2) изменение размера mdiArea автоматически при изменении размера главного окна.

Если необходимо внести некоторые изменения в ui_mainwindow.h, как запретить Qt Creator возвращать его в «нормальный» каждый раз, когда я изменяю файл mainwindow.ui?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

Судя по вашему описанию, у вас не установлен макет на центральном виджете. При открытии инспектора объектов значок рядом с центральным виджетом (который является родительским для QMdiArea) должен иметь вертикальную или горизонтальную разметку.

Чтобы это исправить, вам не следует редактировать файл ui_mainwindow.h. Он генерируется автоматически, и ваши изменения будут потеряны. Вместо этого откройте окно инспектора объектов. Нажмите на QMainWindow, затем откройте меню Form и выберите Layout Vertical.

0 голосов
/ 10 декабря 2014
QMdiSubWindow* w = mdiArea->addSubWindow(new QFontDialog());
w->setWindowFlags(Qt::FramelessWindowHint);
w->showMaximized();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...