gpt4 book ai didi

c++ - C++ 中的动态 QT4 菜单

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:12 26 4
gpt4 key购买 nike

我在 Linux 上使用 C++ 和 QT4。我希望在运行时将项目添加到菜单栏。我的包含菜单栏的主 GUI 是使用 QT Designer 设计的,并在下面的第一行代码中进行了设置。

在我的主窗口构造函数中,我有以下测试代码并且可以正常编译。但是,新的子菜单栏及其项目不会在程序执行时出现。我猜 Qt 需要被告知以某种方式更新菜单栏。有什么想法吗?

 // Setup the user interface m_ui.setupUi(this); QMenu * iObjectsMenu = new QMenu(tr("Objects"), m_ui.menubar); //m_ui.menubar.menu_View->addMenu(tr("Objectz")); QAction * menu_testAction = new QAction(tr("Test"), m_ui.menubar); iObjectsMenu->addAction(menu_testAction);

最佳答案

按照您的做法,您需要将菜单放在某处,而您还没有这样做。

我做的有点不同。当您在设计器中制作菜单时,它们在 ui 成员中有指针。然后,您可以非常轻松地操作该菜单。

例如,我想要一个包含所有可以显示/隐藏的工具栏和停靠窗口的菜单。我查看了制作 QMainWindow::createPopup() 的代码并制作了我自己的外部函数 construct_view_menu(QMainWindow * parent, QMenu * view_menu)。它在主窗口初始化期间使用 construct_view_menu(this, ui.menu_View) 调用。功能只是将更多菜单和操作附加到该菜单。 menu_View 只是我与设计器一起创建的一个空菜单。

我发现这是最简单的方法,但您也可以创建新菜单,然后将它们附加或插入到菜单栏中;这是你忽略的后一步。

关于c++ - C++ 中的动态 QT4 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401964/

26 4 0