【问题标题】:How to remove bar from QMainWindow如何从 QMainWindow 中删除栏
【发布时间】:2014-06-25 19:17:03
【问题描述】:

我正在尝试删除这个栏,但我无法摆脱它(它位于工具栏下方):

该栏的名称是什么,我如何访问它? 谢谢。

【问题讨论】:

    标签: qt toolbar statusbar


    【解决方案1】:

    你调用的toolbar实际上是菜单栏,你调用的other bar实际上是一个空的工具栏。

    您有一个空的工具栏的最可能的原因是您使用 QtDesigner 创建了您的窗口。如果您选择QMainWindow 作为起点,它会自动在窗口中添加一个空菜单栏和一个空工具栏。如果您不需要工具栏,请在右侧的 Object Inspector 中找到它,右键单击并选择 Remove Toolbar 'mainToolbar'(或其他默认名称)。

    【讨论】:

      【解决方案2】:

      如果您添加了该工具栏,您可能有一个指向它的指针?如果是,您可以简单地调用:

      removeToolBar(toolbar);
      

      在您的QMainWindow 班级中。否则,您可以从主窗口中删除所有工具栏:

      QList<QToolBar *> allToolBars = mainWindow->findChildren<QToolBar *>();
      foreach(QToolBar *tb, allToolBars) {
          // This does not delete the tool bar.
          mainWindow->removeToolBar(tb);
      }
      

      【讨论】:

      • 那个工具栏我没加,每个QMainWindow都默认自带的。
      • @xpg94,真的吗?创建 QMainWindow 实例时没有看到工具栏。
      • 你误会了我。我不是在谈论工具栏,而是在谈论另一个“栏”,即我试图在我的问题上传的图像上显示的东西。
      • @xpg94 你展示的是一个工具栏(就在菜单栏的下方)。您可以查看qt-project.org/doc/qt-4.7/qmainwindow.html#removeToolBar 以查看删除它的选项。如果您在 Qt 设计器中创建窗口,请查看qt-project.org/doc/qt-5/designer-creating-mainwindows.html 以了解如何删除工具栏。
      • 你是对的。看来我最后还是误会了你。问题已解决,非常感谢。
      【解决方案3】:

      下面为@RobbieE 的回答添加了一点内容。

      在创建QMainWindow 表单时,它会为用户创建mainToolBar

      如果你右键点击它并选择Remove Toolbar 'mainToolBar'它就会消失。

      或者在构造函数顶部的代码中:

      ui->setupUi(this);
      
      delete ui->mainToolBar; // add this line
      

      希望对您有所帮助。

      【讨论】:

      • 菜单栏的名称可能会有所不同。我的默认是菜单栏,所以:delete ui->menubar;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2017-03-06
      • 2017-11-14
      相关资源
      最近更新 更多