Сокрытие спокойного виджета и хранение пространства виджета

Одна причина состоит в том, что это позволяет Вам расширять язык с помощью конструкций, специфичных для Вашего домена, делая его, эффективно, предметно-ориентированного языка. Эта техника невероятно мощна, поскольку она позволяет Вам рассуждать о проблема , Вы решаете, а не о перестановке битов.

23
задан humberto 9 December 2009 в 14:57
поделиться

5 ответов

Вы можете попробовать поместить кнопку для скрытия внутри другого виджета и попытаться заставить другой виджет сохранять свой размер должным образом, когда кнопка скрыта. Это может быть немного сложно. Был предложен QStackedWidget, и он может быть подходящим вариантом ... он был бы похож на оболочку QWidget, за исключением того, что изменение размера могло бы быть проще.

Другой вариант, на который вы можете обратить внимание, - это вставить разделитель для заполнителя и установить проставку до фиксированного размера, равного размеру кнопки. (Вам нужно будет обновить размер при изменении размера кнопки). Вы должны иметь возможность показывать / скрывать их попарно и заставлять их работать так, как вы ожидаете.

0
ответ дан 29 November 2019 в 02:30
поделиться

Я бы также попытался установить фильтр событий, который переопределяет исходное событие рисования, рисует прозрачный фон и игнорирует большинство событий, на которые виджет не должен реагировать, когда он невидим (возможно, все из их, кроме QResizeEvent ). Когда виджет снова станет видимым, удалите фильтр событий.

См. QObject :: installEventFilter (QObject *) и QObject :: removeEventFilter (QObject *) .

0
ответ дан 29 November 2019 в 02:30
поделиться

Я не знаю, лучший ли это способ, но решил это с помощью QStackedWidget для обертывания кнопки.

-1
ответ дан 29 November 2019 в 02:30
поделиться

Try putting the button you want to hide and unhide in another layout. In that layout along with the button put a spacer. Call Button hide and spacer will take over.Spacer takes over hidden button's space. Other buttons continue to occupy same space.

0
ответ дан 29 November 2019 в 02:30
поделиться

A simple way to do it is to set the miminum size of the place holder widget instead of resizing it. While the size of the widget is not respected by layouts, the minimum size is.

0
ответ дан 29 November 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: