2017-04-07 3 views
0

Ich habe einen einfachen Code für das Menü in PyQt, aber Problem ist, dass es kein Untermenü anzeigt. Ich möchte es zeigen, während ich über "Mehr" schwebe. Was ist falsch?Untermenü in PyQt erstellen

class Menu(QtGui.QMenu): 
    def __init__(self, parent=None): 
     QtGui.QMenu.__init__(self, "Menu", parent) 
     sub_menu = QtGui.QMenu("Sub menu") 

     icon = QtGui.QIcon.fromTheme("edit-paste") 
     item = QtGui.QAction(icon, "More", self) 
     self.addAction(item) 

     icon = QtGui.QIcon.fromTheme("edit-copy") 
     item = QtGui.QAction(icon, "Submenu item 1", self) 
     item.triggered.connect(self.function) 
     sub_menu.addAction(item) 

     icon = QtGui.QIcon.fromTheme("edit-copy") 
     item = QtGui.QAction(icon, "Submenu item 2", self) 
     item.triggered.connect(self.function) 
     sub_menu.addAction(item) 

     self.addMenu(sub_menu) 

     icon = QtGui.QIcon.fromTheme("close") 
     item = QtGui.QAction(icon, "&Exit", self) 
     item.triggered.connect(self.quit_f) 
     self.addAction(item) 

    def function(self): 
     QtGui.QMessageBox.about(self.parent(), "About", "Test") 

    def quit_f(self): 
     sys.exit(0) 

Antwort

0

Sie müssen die Eltern zur Verfügung stellen, wenn Sie Ihr Untermenü erstellen:

sub_menu = QtGui.QMenu("Sub menu", parent=self) 
... 
self.addMenu(sub_menu) 



Hinweis: Dies ist eine Alternative, prägnante Weise Untermenü zu erstellen:

sub_menu = self.addMenu("Sub menu")