Изменение размера, спровоцированное QStatusBar :: showMessage ()

Основное окно моего приложения — это QWidget с QGridLayout, включающий несколько других виджетов, включая QStatusBar.

Я следовал документации Qt http://doc.qt.io/qt-4.8/qstatusbar.html, так что моя строка состояния может отображать:

  • «обычное сообщение» (а именно: «Готово») путем добавления QLabel в строку состояния с помощью QStatusBar::addWidget(),
  • временные сообщения (которые временно скрывают «нормальное сообщение»), вызывая QStatusBar::showMessage(),

Моя проблема заключается в том, что, когда временное сообщение показывается или очищается от строки состояния, то, по-видимому, срабатывает QLayout::activate() (на макете моего главного окна). Это, в свою очередь, может вызвать изменение размеров других виджетов в моем окне, и я делаю не хочу, чтобы это случилось.

Любопытно (раздражает) то, что строка состояния фактически не изменяется (как и должно быть, ее не нужно изменять), поэтому я не уверен, почему QStatusBar::showMessage() попросил бы макет изменить размер чего-либо.

Кто-нибудь знает решение этой проблемы? Заранее спасибо!

1

Решение

использование

QWidget::adjustSize()

Настройка родительского виджета в соответствии с его содержимым после отображения или удаления сообщения в строке состояния

-1

Другие решения


По вопросам рекламы [email protected]