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)
posted @ 2023-07-01 23:53  挖洞404  阅读(6)  评论(0编辑  收藏  举报