PyQt5程序的基本结构及简单示例

基本结构

一个PyQt5程序,总的来说分为以下几个步骤:

  1. 创建一个QApplication(sys.argv)对象app(app表示对象名,可以自拟)
    这一步的目的是创建一个Qt应用程序对象,所有的PyQt5应用程序必须要有这个对象。其中sys.argv参数是一个列表,可以接受从命令行输入的参数(字符串格式),这些参数被组成一个列表。
  2. 进行控件的操作
    在这一步,主要的内容是创建控件、设置样式、为添加添加相关的响应处理等。最后调用顶层控件的show方法将控件展示在屏幕上。
  3. 正式启动程序,然后进入到消息循环当中(消息循环是一个死循环,避免程序闪退),进入后只有当监听到退出事件时程序才会退出。此步的代码为sys.exit(app.exec_())。其中app.exec_()是用来显示程序的退出状态码的,正常退出的状态码为0。

注: 在步骤1中,命令行传入的参数列表可以通过QApplication对象的app.arguments()获取。另外,在PyQt5.Qt中有一个QApplication的对象qAPP,这个是一个全局变量,可以在各个模块中使用。

基于函数/脚本编程的PyQt5程序示例

#coding:utf-8
from PyQt5.Qt import * #此句会引入PyQt5中常用的类
import sys
#创建PyQt5应用程序对象
app = QApplication(sys.argv)
#创建顶层窗口,该窗口没有任何父类
window = QWidget()
#设置相关参数
window.setWindowTitle("初体验")#窗口标题
window.resize(500,500) #设置窗口的大小
window.move(400,200) #设置窗口在屏幕上显示的位置
window.setWindowIcon(QIcon("red_cloth1.jpg")) #设置窗口的图标
#创建标签,并且该标签显示在window上,
label = QLabel(window) 
label.setText("hello world!") #设置标签的文本
button = QToolButton(window) #创建一个按钮,该按钮也显示在window窗口上
button.setText("submit")#设置按钮的文本内容
button.move(100,100) #move函数用于移动/设置对象在window中的位置
label.move(200,200)
window.show() #在屏幕显示这个窗口
sys.exit(app.exec_()) #表示系统退出,并且有退出码,比如程序正常退出,退出码为0

基于面向对象的方法PyQt5程序示例

from PyQt5.Qt import QApplication
from PyQt5.Qt import QWidget
from PyQt5.Qt import QIcon
from PyQt5.Qt import QLabel
from PyQt5.Qt import QToolButton
import sys

# 该类是一个简单的窗口控件,完成了一个窗口的简单设置
class Window(QWidget):
    def __init__(self): # 对象的初始化方法
        super().__init__() #调用父类的初始化方法
        self.setUI()

    def setUI(self): #控件的各种配置的方法,如果需要修改控件的配置,只需要在该方法中修改即可
        self.setWindowTitle("初体验")
        self.resize(500, 500)
        self.move(400, 200)
        self.setWindowIcon(QIcon("red_cloth1.jpg"))
        label = QLabel(self)
        label.setText("hello world!")
        button = QToolButton(self)
        button.setText("submit")
        button.move(100, 100)
        self.show()
        
# 用于驱动整个程序
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    sys.exit(app.exec_())

上面代码的运行结果

PyQt5程序的基本结构及简单示例_第1张图片

你可能感兴趣的:(pythonGUI编程)