PyQt 使用 类 显示按钮

PyQt using classes to show button

在这里卡住了,我正在尝试学习如何使用 classes,所以只是想在 window 上显示一个按钮,而按钮位于另一个 [=16] =].这是我尝试使用的代码:

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

就我得到一个 window 而言,这是有效的,但它上面没有按钮,但是我输入的打印消息有效。请问我做错了什么?

除了将父级传递给 class 和按钮外,您还必须在 Menu 中初始化父级 class。

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()