Основное окно моего приложения — это QWidget с QGridLayout, включающий несколько других виджетов, включая QStatusBar.
Я следовал документации Qt http://doc.qt.io/qt-4.8/qstatusbar.html, так что моя строка состояния может отображать:
QStatusBar::addWidget()
,QStatusBar::showMessage()
,Моя проблема заключается в том, что, когда временное сообщение показывается или очищается от строки состояния, то, по-видимому, срабатывает QLayout::activate()
(на макете моего главного окна). Это, в свою очередь, может вызвать изменение размеров других виджетов в моем окне, и я делаю не хочу, чтобы это случилось.
Любопытно (раздражает) то, что строка состояния фактически не изменяется (как и должно быть, ее не нужно изменять), поэтому я не уверен, почему QStatusBar::showMessage()
попросил бы макет изменить размер чего-либо.
Кто-нибудь знает решение этой проблемы? Заранее спасибо!
использование
QWidget::adjustSize()
Настройка родительского виджета в соответствии с его содержимым после отображения или удаления сообщения в строке состояния