2017-01-23 4 views
0

ここでは非常に固執していますが、クラスを使用する方法を学びたいので、ボタンが別のクラスにあるときにウィンドウにボタンを表示するだけです。ここで私が使用しようとしていますコードは次のとおりです。クラスを使用してボタンを表示するPyQt

#!/usr/bin/python3 

import sys 
from PyQt4 import QtGui, QtCore 

class Window(QtGui.QDialog): 

    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setGeometry(0, 0, 800, 600) 
     main_menu = Menu() 

     self.show() 

class Menu(QtGui.QWidget): 

    def __init__(self): 
     btn = QtGui.QPushButton("Quit") 
     btn.resize(btn.sizeHint()) 
     btn.move(100,100) 
     btn.show() 
     print("Hello I am a menu") 




def main(): 
    app = QtGui.QApplication(sys.argv) 
    main_window = Window() 

    sys.exit(app.exec()) 


if __name__ == "__main__": 
    main() 

これは、これまでのところ、私は窓を得るように動作しますが、それにはボタンが、私は作品に入れて印刷メッセージをhowerverません。私は何を間違えていますか?

+0

他のクラスのボタンと混乱しないでください。 – furas

+0

'sys.exit(app.exec _())' – answerSeeker

答えて

1

親クラスをMenuに初期化し、そのクラスとボタンに親を渡す必要があります。

import sys 
from PyQt4 import QtGui, QtCore 

class Window(QtGui.QDialog): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setGeometry(0, 0, 800, 600) 
     main_menu = Menu(self) 
     self.show() 

class Menu(QtGui.QWidget): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     btn = QtGui.QPushButton("Quit", self) 
     btn.resize(btn.sizeHint()) 
     btn.move(100,100) 
     print("Hello I am a menu") 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    main_window = Window() 

    sys.exit(app.exec_()) 


if __name__ == "__main__": 
    main() 

enter image description here

+0

'sys.exit(app.exec _())'に変更 – answerSeeker

+0

@answerSeekerありがとう – eyllanesc

+0

eyllanesc、問題ありません。 – answerSeeker

関連する問題