pyqt5-开始
1、介绍
pyqt是python的一个用于GUI开发的主流第三方模块,底层兼容Qt。
- 支持多种常用组件,并且具有很好的默认显示效果
- QtDesigner支持图形化直接设计ui,大大减轻工作,得到更好的效果
- 使用范围广,网络上有很多的中文文档和问答,方便开发
- 支持pyqthon3语法,目前是pyqt5版本
2、比较其它GUI模块
- tkinter是python默认的GUI库,兼容性很好,但是显示效果一般,组件也较少
- pyside,第三方GUI库,已经停止更新。其和pyqt具有很类似的语法,大多数组件类的名称也一致,还都具有designer工具,可通用
3、安装和使用
(1)快速安装和使用
import sys
from PyQt5.QtWidgets import QApplication, QWidget
pycharm中,直接写代码引用pyqt5模块,如果还未安装,鼠标放到模块名上,根据提示选择install即可。
(2)pip搜索安装
pyqt5
(3)设置pycharm的编码
这实际应该是初始化python新的工作空间时就应该去设置完成的。而如果没有进行设置,qtdesigner中无法使用中文,加载之后会乱码
4、源码阅读
通过编程,读取源码文件中的注释部分,快速梳理有哪些方法,以及基本使用。
path = r'xxxxx\PyQt5\QtWidgets\QMainWindow.py'
with open(path, 'r') as f:
lines = f.readlines()
# 正常
normal_list = list()
# 信号
signal_list = list()
# 事件
event_list = list()
i = 0
while i < len(lines):
line = lines[i].strip()
# 注释,多行注释
if line == '"""':
i = i + 1
while lines[i].strip() != '"""':
if '[signal]' in line:
signal_list.append(lines[i].strip())
elif 'vent' in line:
event_list.append(lines[i].strip())
else:
normal_list.append(lines[i].strip())
i = i + 1
# 注释,单行注释
elif line.startswith('"""'):
line = line[3:-3].strip()
if '[signal]' in line:
signal_list.append(line)
elif 'vent' in line:
event_list.append(line)
else:
normal_list.append(line)
i = i + 1
for item in normal_list:
print(item)
print("---------------")
for item in event_list:
print(item)
print("---------------")
for item in signal_list:
print(item)