PyQt5编程(3) : Hollow World程序的面向对象编程代码

# -*- coding: utf-8 -*-

from PyQt5 import QtCore, QtWidgets

class MyWindow(QtWidgets.QWidget):

    def __init__(self, parent=None):

        QtWidgets.QWidget.__init__(self, parent)

        self.label = QtWidgets.QLabel("Hello World!")

        self.label.setAlignment(QtCore.Qt.AlignHCenter)

        self.btnQuit = QtWidgets.QPushButton("关闭窗口(&C)")

        self.vbox = QtWidgets.QVBoxLayout()

        self.vbox.addWidget(self.label)

        self.vbox.addWidget(self.btnQuit)

        self.setLayout(self.vbox)

        self.btnQuit.clicked.connect(QtWidgets.qApp.quit)

 

if __name__ == "__main__":

    import sys

    app = QtWidgets.QApplication(sys.argv)

    window = MyWindow()   # 创建窗口类实例

    window.setWindowTitle("面向对象编程的窗口创建")

    window.resize(300, 70)

    window.show()         # 显示窗口

    sys.exit(app.exec_()) # 进入主循环

1.PyQt的程序结构
第1行:指定程序文件的编码格式。
第2行:载入PyQt5的QtWidgets,QtCore模块,比前面的例子多了QtCore,它包括了Qt类中属性的定义。
第3行:class MyWindow(QtWidgets.QWidget),定义窗口类,该类继承自QWidget
第4行:def init(self, parent=None) : 定义窗口类的构造函数,参数 self为类实例,parent为父类,没有父类时,可将其设为null。
第5行:QtWidgets.QWidget.init (self, parent),构造函数的第1行,调用父类的构造函数。
第6-9行:创建QLabel、QPushButton、QVbox对象为了以后调用方便,这些对象定义为类实例的属性。
第10-11行:将QLabel、QPushButton添加到QVbox容器中
第12行: self.setLayout(self.vbox) 将QVbox容器添加到窗口中
第13行: self.btnQuit.clicked.connect(QtWidgets.qApp.quit),给btnQuit对象的clicked信号句柄赋值,本句中是应用程序的退出函数QtWidgets.qApp.quit),称为槽(slot)。通过QtWidgets的qApp来访问应用程序对象。
第15行: if name == "main" : 文件作为脚本直接运行时,相关的代码才会被执行;当用import导入到其他模块中,则不会。

你可能感兴趣的:(PyQt5编程(3) : Hollow World程序的面向对象编程代码)