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