【问题标题】:How to hide the status bar QtQt如何隐藏状态栏
【发布时间】:2017-12-02 20:02:11
【问题描述】:

我正在尝试为我的软件创建一个打开屏幕。 因为我在QMainwindow 中有一个状态栏,所以 Qt 让我在打开屏幕的底部有一个透明的线条。

我尝试使用:

this-> statusBar () -> hide ();
ui-> statusBar-> hide ();

但由于某种原因,Qt 忽略了它们,仍然在屏幕底部显示透明线。

我无法完全删除状态行,因为我稍后在下一个屏幕上使用了它。

我怎样才能隐藏它?

【问题讨论】:

  • 我试过了,它可以工作,也许它是另一个小部件,试试下面的代码:ui->statusBar->showMessage("some message"); ui->statusBar->hide();,如果你没有看到消息,那么它是另一个小部件。
  • 你试过ui->setStatusBar(nullptr)。但要注意现有QStatusBar 的所有权。
  • @G.M.他想隐藏状态栏,不想消除它。
  • 打开屏幕是指启动画面吗?如果是,QSplashScreen 会比 QMainWindow 更合适。
  • @eyllanesc 当我做ui->statusBar->showMessage("some message"); 我可以在透明线上看到这个按摩,当我做ui->statusBar->showMessage("some message"); ui->statusBar->hide(); 我没有看到按摩但我仍然看到透明线

标签: qt qmainwindow qstatusbar


【解决方案1】:
QMainWindow::setStatusBar(nullptr);

你也可以用'this'代替'ui'

this->statusbar()->hide();

替代:this->statusbar()->setVisible(false);

Ui 是表单本身,'this' 是 MainWindow 小部件。 Statusbar() 是 MainWindow 的成员,而不是 Ui 窗体。您不能直接访问 ui->MainWindow,在 MainWindow 类中,使用 'this->' 访问其成员。

【讨论】:

    【解决方案2】:

    我尝试在代码中使用 statusbar()->hide(),但这并没有解决我的具体问题,即状态栏的空间仍然存在于对话框中,也存在于 UI 设计器中。

    我的解决方法:手动编辑myview.ui文件,去掉这行:

    <widget class="QStatusBar" name="statusbar"/>
    

    解决了它:不再有状态栏。 (因为我不想要它,所以这对我有用)

    【讨论】:

      【解决方案3】:

      您可以在不编辑.ui 文件的情况下同时删除状态栏和菜单栏。

      在 Qt Designer 或 Creator 中,在小部件树中,找到状态栏,右键单击它并在上下文菜单中选择“删除”。

      菜单栏也可以这样做。

      【讨论】:

        猜你喜欢
        • 2016-02-15
        • 1970-01-01
        • 1970-01-01
        • 2015-09-17
        • 2013-09-29
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        相关资源
        最近更新 更多