Как скрыть строку состояния 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->'.

Другие вопросы по тегам