2017-01-23 52 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