PyQt使用类来显示按钮

时间:2017-01-23 17:44:13

标签: python python-3.x pyqt pyqt4 qwidget

非常困难,我正在尝试学习如何使用类,因此只需要在按钮处于不同的类中时在窗口上显示按钮。这是我试图使用的代码:

#!/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()

只要我有一个窗口,但是没有按钮就可以正常工作,这样我就会收到打印消息。我做错了什么?

1 个答案:

答案 0 :(得分: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