PyQt4: скрыть виджет и изменить размер окна - PullRequest
1 голос
/ 19 февраля 2010

Я работаю с несколькими виджетами, но решение просто не выйдет. У меня есть серия кнопок из серии QHBoxLayouts. Некоторые кнопки скрыты по умолчанию, но они будут появляться при необходимости. Для решения проблем с пространством все кнопки имеют минимальный и максимальный размер, поэтому они всегда хорошо упакованы. Также у меня есть QTextEdit, видимый по умолчанию, который находится в QVBoxLayout с QHBoxLayout, который удерживает кнопки

Итак, проблема в следующем: когда я скрываю QTextEdit и показываю другие кнопки, окно не изменяется. После поиска я обнаружил, что использование self.ui.layout().setSizeConstraint(QtGui.QLayout.SetFixedSize) поможет, но проблема в том, что он берет максимальный размер из всех виджетов, поэтому я заканчиваю огромное окно. Выполнение self.ui.layout().setSizeConstraint(QtGui.QLayout.SetMinAndMaxSize) не изменит размер окна

Я уже пытался использовать self.ui.resize(0,0), и при выполнении self.ui.layout().update() я получил False (что я считаю странным http://doc.trolltech.com/4.6/qlayout.html#activate),, а также попытался переопределить sizeHint(), но он продолжает использовать максимальный размер для всех виджеты.

Есть ли способ изменить размер окна и позаботиться о минимальном и максимальном размере виджета?

Заранее спасибо

1 Ответ

4 голосов
/ 19 февраля 2010

Ответ был довольно слабым ... Просто нужно было изменить QVBoxLayout на QGridLayout и использовать self.ui.layout().setSizeConstraint(QtGui.QLayout.SetFixedSize)

...