近来学习PyQt的时候,在分析代码时候逻辑比较难弄懂,于是跟了一个上手的课程
一边学习一边记录,辅助自己分析代码,特此做记录
(一)firstPyQt
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv) # 1 相当于创建一个对象,好比打开了一个页面
print(sys.argv) # sys.argv
"""
sys.argv是来自命令行的参数列表,Python脚本可以从shell运行,比如用鼠标双击qtSample.py,就启动了一个PyQt应用程序。
引入sys.argv后就能让程序从命令行启动,比如在命令行中输入 python qtSample.py,也可以达到同样的效果。
"""
w = QWidget() # 4 创建窗口
# 设置窗口标题
w.setWindowTitle("My first PyQt") # 5 设置标题
# 显示窗口
w.show() # 显示窗口
# 程序进行循环等待状态
app.exec_() # 2 app.exec_()是类中的一个循环监听方法,监测我在打开的页面中做了什么
这里对程序逻辑做出解释
(1)引入相关库
sys:“sys”即“system”,“系统”之意。该模块提供了一些接口,用于访问 Python 解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交互。
QApplication:Application类用于管理图形用户界面应用程序的控制流和主要设置,可以说QApplication是PyQt的整个后台管理的命脉。任何一个使用PyQt开发的图形用户界面应用程序,都存在一个QApplication对象。
QtWidgets: 是PyQt5下面的一个模块,包含了一整套UI元素组件,用于建立符合系统风格的classic界面。
(2)重要代码解释
1.app = QApplication(sys.argv)
只要是Qt制作的app,必须有且只有一个QApplication对象
2.sys.argv的解释(本质是一个列表)
sys.argv[ ] 说白了就是一个从程序外部获取参数的桥梁 ,我们从外部取得的参数可以是多个 ,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表 ,所以才能用[]提取其中的元素 。其第一个元素(sys.argv[0])是程序本身 ,随后才依次是外部给予的参数 。
我在程序中打印了一下sys.argv,可以看到输出的是程序的路径
3.app.exec_()
app.exec_()是类中的一个循环监听方法,监测我在打开的页面中做了什么
这里借用一个计算器的案例
如图所示,我在计算器中无论点什么,程序都会重新进入循环,不会导致程序退出去
许多初学者遗漏这一行代码,都会导致画面一闪而过。app.exec_()的含义是,最后一个窗口关闭后,程序才停止
(二)QPushButton
这里按钮创建需要注意的关键点就是设置父类
setParent()函数的意义:
就是使得子控件或者子页面出现在主页面当中
(三)QLabel
上述方法调用父类比较麻烦,创建一个控件就调用一次父类是比较麻烦的
于是在这换一种创建的方式
就是在创建的时候换一种方式
如图,直接在创建的时候,第二个参数直接用父类,但是这种方法创建出来的窗口尺寸很小
为了解决这个问题,需要对窗口的大小进行设置,如下
(四)QLineEdit
这里把前面两个例子也加进来做统一的整理