Как скрыть строку состояния Qt
Я пытаюсь создать начальный экран для моего программного обеспечения. Потому что у меня есть строка состояния в QMainwindow
затем Qt делает меня прозрачной линией в нижней части начального экрана.
Я пытался с помощью:
this-> statusBar () -> hide ();
ui-> statusBar-> hide ();
Но по какой-то причине Qt игнорирует их и все еще показывает прозрачную линию внизу экрана.
Я не могу полностью удалить строку состояния, потому что я использовал ее на следующем экране позже.
Как я могу просто скрыть это?
3 ответа
Вы можете удалить как строку состояния, так и строку меню, не редактируя
.ui
файл.
В Qt Designer или Creator в дереве виджетов найдите строку состояния, щелкните ее правой кнопкой мыши и в контекстном меню выберите «Удалить».
То же самое можно сделать со строкой меню.
Я попытался использовать statusbar()->hide() из кода, и это не решило мою конкретную проблему, заключающуюся в том, что пространство для строки состояния все еще существовало в диалоговом окне, а также в UI Designer.
Мое решение: вручную отредактируйте файл myview.ui и удалите строку:
<widget class="QStatusBar" name="statusbar"/>
Это решило проблему: больше нет строки состояния. (так как я не хотел этого там, это сработало для меня)
QMainWindow::setStatusBar(nullptr);
Вы также можете использовать this вместо ui
this->statusbar()->hide();
Альтернатива:
this->statusbar()->setVisible(false);
Ui - это сама форма, а this - виджет MainWindow. Statusbar () является членом MainWindow, а не формой пользовательского интерфейса. Вы не можете получить доступ к ui-> MainWindow напрямую, в классе MainWindow доступ к его членам с помощью 'this->'.