2017-04-07 6 views
0

私はPyQtのメニューのための簡単なコードを持っていますが、問題はそれがサブメニューを表示しないことです。私はそれを "More"の上に置いて見せたい。なにが問題ですか?PyQtのサブメニューを作成する

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) 

答えて

0

あなたのサブメニューを作成するときは、親を提供する必要があります。

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



注:

sub_menu = self.addMenu("Sub menu") 
:これは、サブメニューを作成するための代替、より簡潔な方法です。
関連する問題