如何从QMainWindow中移除工具栏

6
我想删除这个栏,但我无法摆脱它(它位于工具栏底部):
什么是该栏的名称,如何访问它? 谢谢。
3个回答

8
你所说的“工具栏”实际上是菜单栏,而你所说的“另一个栏”实际上是一个空的工具栏。
如果你使用QtDesigner创建窗口,则最有可能出现空白工具栏。如果你选择以QMainWindow为起点创建窗口,它会自动将一个空白菜单栏和一个空白工具栏添加到窗口中。如果你不需要工具栏,请在右侧的Object Inspector找到它,右键单击并选择“Remove Toolbar 'mainToolbar'”(或其他默认名称)。

4
如果您添加了该工具栏,那么您可能有一个指向它的指针?如果是的话,您可以简单地调用以下命令:
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
@xpg94,真的吗?我在创建QMainWindow实例时没有看到工具栏。 - vahancho
你误解了我的意思。我不是在谈论工具栏,我在谈论另一个“条形菜单”,就是我试图在上传问题时展示的那个东西。 - xpg94
@xpg94,您展示的是一个工具栏(位于菜单栏下方)。您可以查看https://qt-project.org/doc/qt-4.7/qmainwindow.html#removeToolBar以查看删除它的选项。如果您是在Qt Designer中创建窗口,请查看http://qt-project.org/doc/qt-5/designer-creating-mainwindows.html以了解如何删除工具栏。 - rpsml
你是对的。最后我似乎误解了你。问题已经解决,非常感谢你。 - xpg94

2

以下是对 @RobbieE 答案的补充。

当创建一个 QMainWindow 表单时,它会为用户创建一个 mainToolBar

如果您右键单击它并选择 删除工具栏 'mainToolBar',它将消失。

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

ui->setupUi(this);

delete ui->mainToolBar; // add this line

希望这有所帮助。

你的菜单栏名称可能会有所不同。我的默认名称是menubar,因此:删除ui->menubar; - ClearCrescendo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接