本来刚开始写python是为了简化自己的工作,后来想把脚本分享给同事使用,但是他们不会配置,无奈开始学习如何给python增加一个GUI,接触了pysimplegui、Guietta,他们在实现简单的gui时候很容易,但是在实现高级功能的时候,我感觉学起来比较复杂,最后决定学习pyside6。
pyside6对应的是Qt 6+版本,具体细节见官方文档。如果你想使用Qt5+版本,则需要安装pyside2。在百度文档时,pyside2 文档较少,可以百度pyqt5,基本语法都差不多,某些库有些许区别,对比着看就可以。
一、准备
- OS:Windows 11 专业版
- 编辑器:Vs Code
- python version:3.10.1
准备这些我们就可以开始了,后续学到高级功能,我们再安装 Qt,点击这里下载。到时候可以使用Qt Creator创建
.ui
文件,动态加载界面,或者使用QML
制作更酷炫的界面。如果想动态渲染界面的某些组件则需要用python代码来编写组件。😭这些暂时不写了,因为…我还没学明白。
二、安装pyside6
# 安装pyside6
pip install pyside6
安装完这个库就可以使用了,我们可以入门尝试一下,大概了解他的基本原理,来实现一个简单的界面。
三、入门使用
3.1、基本概念了解
Qt中有一些概念,我刚开始还不太了解,对我阅读文档造成了比较大的阻碍,这里先提及一下:
- Widget:组件,可以理解为button,input,这些;
- Signla:信号,可以理解成子类向父类传递的信息的的一个载体,类似广播的概念;
- Slot:槽,其实就是一个方法,或者函数,可以通过
connect
方法,和信号
绑定来触发这个方法。
其实如果学过electron中的ipc通信,应该可以比较容易理解这块。具体信号和槽的讲解,这篇博客讲的很棒,可以看一下:QT5信号与槽
3.2、练手示例
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton,QLabel
app = QApplication([])
# 设置窗口,也就是生成一个载体来承载组件
window = QMainWindow() # 实例化一个window
window.resize(300, 100) # 设置window的大小
window.move(300, 310) # 设置窗口显示的位置
window.setWindowTitle('入门示例') # 设置窗口的标题
# 制作组件
text = QLabel(window) # 将组件挂载到载体上
text.setText('hello world')# 设置label组件的文本
# 显示窗口
window.show()
app.exec_()
运行效果如下:
其他
等我学完回来补充,我准备写一个多窗口的一个数据清洗工具