c++ - Qt5 : How to hide or remove a QMenu from the QMenuBar?

标签 c++ qt menu show-hide menuitem

我在Windows7平台上使用Qt5:
Qt Creator 版本为:v3.3.2.
Qt 版本 5.5.1 和 MinGW 32 位。

目前,在我的菜单栏中:

Configuration - Reports - Help

我搜索了 SO,我发现这是一个可能的答案:Not possible to hide a QMenu object QMenu::setVisible()? , 但没用...

因此,我尝试使用以下方法删除“帮助”菜单:

ui->menuHelp->setVisible(false);

和:

ui->menuHelp->menuAction()->setVisible(false);

不幸的是,两者都未能隐藏/删除帮助菜单...

请问还有其他方法吗?

[代码]:

MainWindow::MainWindow(QWidget * parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowFlags(this->windowFlags() & ~Qt::WindowMaximizeButtonHint);
    if(!server.listen(QHostAddress("192.168.1.2"), 8001))
        return;
    if(true) // just testing...
       ui->menuHelp->menuAction()->setVisible(false);
}

最佳答案

为了测试,我在 menuBar 中添加了 3 个菜单。
然后我试了这个:

ui->menu3->menuAction()->setVisible(false);

它按预期工作 - 它隐藏了 menu3。你的问题在别的地方。

代码 ui->menuHelp->setVisible(false); 隐藏菜单,而不是 menuBar 上的操作。例如,当您单击 menuBar 上的操作时,菜单将变为可见。然后你可以用这行代码隐藏它。但是,当您直接从构造函数调用它时,菜单仍然不可见,因此这段代码什么都不做。

关于c++ - Qt5 : How to hide or remove a QMenu from the QMenuBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34825820/

相关文章:

c++ - 使用共享库在 Ubuntu 上部署 Qt 应用程序二进制文件

java - 将 Google Play 服务库添加到 Qt 项目

menu - 如何使用applescript点击 "drop down window"

c++ - 重载new和delete运算符

Qt:如何在 QFileDialog 上设置不区分大小写的过滤器?

jquery - Bootstrap Navbar 将打开,但不会关闭

vim - 重复从菜单调用的命令

c++ - 默认的 TIFF 方向是什么?

用于构建具有 C++ 后端的 GUI 的 Java 与 C++

c++ - std::wstring to_wstring(双值);