在 QTabWidget 选项卡下创建一个 QMenubar

Create a QMenubar under QTabWidget tabs

我正在尝试找到一种方法将 QMenuBar 插入到 QTabWidget 下。找不到任何解决方案,尝试从 QMainWindow 生成的 .ui 文件中获取 QMenuBar intilization,但没有成功

    self.menubar = QtGui.QMenuBar(self.myTab)
    self.menubar.setGeometry(QtCore.QRect(0, 0, 700, 21))
    self.menubar.setObjectName(_fromUtf8("menubar"))
    self.menuOptions = QtGui.QMenu(self.menubar)
    self.menuOptions.setObjectName(_fromUtf8("menuOptions"))
    self.myTab.setMenuBar(self.menubar)

我需要它是这样的,因为我的应用程序将为每个选项卡视图提供自定义选项部分

QMenuBar 只是一个小部件。你可以把它放在任何地方。

为什么要从 .ui 获取菜单栏,而不是自己创建?

另请记住,它仅适用于 Windows。在支持全局菜单的 MacO 和 Linux DE 上,它将无法正常工作。

官方QT论坛上的朋友帮了我...

解决方案是您可以将 QMenuBar 添加到 TAB 的布局中(您不能从 QT Designer 执行此操作)

    self.menuBar = QtGui.QMenuBar()
    self.menuOptions = QtGui.QMenu("Options", self.menuBar)
    self.actionQuit = QtGui.QAction('Quit', self)
    self.actionQuit.triggered.connect(self.close)

    self.menuOptions.addAction(self.actionQuit)
    self.menuBar.addAction(self.menuOptions.menuAction())

    #WARN! TAB widget must have a layout!
    self.ui.UDETabs.widget(0).layout().setMenuBar(self.menuBar)