如何调整(Py-)Qt菜单?

时间:2015-01-20 13:38:22

标签: python qt pyqt

我想在PyQt中为子菜单设置两个东西:

  1. 悬停时不打开子菜单
  2. 通过点击打开子菜单时没有延迟
  3. 我想我必须修改子菜单对象的QAction方法返回的menuAction()对象的悬停行为 - 但是如何做到这一点?

    文档中提到的QStyle::SH_Menu_SubMenuPopupDelay设置可能是我需要的第二个但我也不知道如何在PyQt中设置它。

    我的基本菜单示例:

    #!/usr/bin/env python
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    class MainWindow(QtGui.QMainWindow):
        def __init__(self, parent=None):
            super(MainWindow, self).__init__(parent)
    
            self.menubar = QtGui.QMenuBar(self)
            self.setMenuBar(self.menubar)
            self.menuFile = QtGui.QMenu(self.menubar, title='File')
            self.menubar.addAction(self.menuFile.menuAction())
            self.submenu = QtGui.QMenu(self.menuFile, title='Submenu')
            self.menuFile.addAction(QtGui.QAction(self, text="First"))
            self.menuFile.addAction(self.submenu.menuAction())
            self.menuFile.addAction(QtGui.QAction(self, text="Third"))
            self.submenu.addAction(QtGui.QAction(self, text="First"))
            self.submenu.addAction(QtGui.QAction(self, text="Second"))
            self.submenu.addAction(QtGui.QAction(self, text="Third"))
    
    if __name__ == '__main__':
        import sys
    
        app = QtGui.QApplication(sys.argv)
        mw = MainWindow()
        mw.show()
        sys.exit(app.exec_())
    

0 个答案:

没有答案