2015-02-18 4 views
2

У меня есть QStackWidget с 2 страницами. Одна страница содержит только 2 QLineEdit виджетов, а другая страница содержит большой QTextEdit. Кто-нибудь знает, как сделать одну страницу больше, чем другую, чтобы окно по-прежнему плотно прилегало к каждой странице? В Qt Designer QStackWidget должен принимать больший размер, чтобы сначала QTextEdit, но тогда страница с виджетами QLineEdit была бы слишком большой.Как сделать разные страницы QStackedWidget разных размеров?

Благодаря

ответ

1

Вы можете установить политику размера страницы, которая отображается в QSizePolicy.Preferred и остальных к QSizePolicy.Ignored. После этого звоните adjustSize, чтобы обновить размеры. Например, если вы установите текущий индекс, чтобы показать page1:

page1.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) 
page2.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored) 

stackedWidget.adjustSize() 
adjustSize() 

И когда другая страница, определяете политику размера другого пути.

+0

Но тогда, как сложный виджет принимает размер меньшей или большей страницы? Если я использую 'QWidget' для страниц,' sizehint() 'возвращает -1 -1 – Kar

+0

try' resize (minimumSizeHint());'. Это уменьшило бы его до минимального размера. – Nejat

+0

Справа. Если я печатаю 'page1.minimumSizeHint()' (аналогично для 'page2'), я получаю' QSize (-1, -1) '. Должны ли страницы быть класса 'QWidget'? – Kar

Смежные вопросы