如何为整个Qt应用程序创建一个菜单?

时间:2015-06-08 13:37:56

标签: qt qt5 qmainwindow qmenu qmenubar

我的应用程序可以启动QMainWindow的多个实例,我希望每个实例都有相同的菜单。如果没有初始化实例但应用程序仍在运行(可能在Mac OS X上运行),我仍然希望显示相同的菜单,但禁用了一些项目。

我该怎么做呢?是否可以将QMenuQMenuBar子类化,将子类转换为单例,并将其传递给每个QMainWindow

1 个答案:

答案 0 :(得分:2)

QMenu遵循Qt的拥有概念,每个菜单或动作只能由一个父母拥有。有办法克服这个问题,但这不是正确的做法。在这种情况下,子类化不会发生太大变化,特别是不是自己的模型。

我建议你创建一个菜单工厂,为每个窗口创建单独的菜单和操作(一个没有窗口情况),并将每个操作连接到相应的插槽(在窗口类或某些全局类中用于全局操作) )。

相关问题