PyQt6的开发流程(密码生成小程序为例)
文章目录
- PyQt6的开发流程(密码生成小程序为例)
- 一、流程介绍与概览
- 1. 界面与逻辑分离的开发流程
- 2. PyQt6的开发流程
- 二、打开 designer.exe 创建文件
- 三、用QT设计师绘制界面保存成ui
- 1. QT常用组件介绍
- 2. 密码生成小程序界面设计
- 四、用pyuic6把ui文件转换成python文件
- 五、界面与逻辑分离的方法编写主程序
- 六、编写信号处理函数(点击按钮做操作)
- 七、使用pyinstaller打包成exe程序
- 用 QT 设计师绘制界面保存成 ui 文件
- 用 pyuic6 把 ui 文件转换成 python 文件
- 界面与逻辑分离的方法编写主程序
- 编写信号处理函数(点击按钮做操作)
- 使用 pyinstaller 打包成 exe 程序
一、流程介绍与概览
1. 界面与逻辑分离的开发流程
2. PyQt6的开发流程
二、打开 designer.exe 创建文件
在cmd中打开conda环境,找到pyqt所在的位置进行复制。
将复制的路径粘贴到文件夹的位置栏跳转到该文件夹,并且在右侧搜索框搜索designer.exe:
三、用QT设计师绘制界面保存成ui
1. QT常用组件介绍
2. 密码生成小程序界面设计
对界面内容进行垂直布局
垂直布局结果:
修改界面的标题title
->windowTitle
:
选中整个界面框修改其名字(整个界面框的名字将在执行pyuic6 password_generate.ui -o password_generate.py
命令将password_generate.ui
文件生成password_generate.py
文件中的类名Ui_PasswordGenerate
):
修改界面中组件的名字objectname,在程序中要利用改名字写具体的函数命令:
Ctrl+S保存界面的ui文件:
保存文件之后名字在上方显示:
四、用pyuic6把ui文件转换成python文件
激活pyqt环境
conda activate pyqt
利用pyuic6将.ui
文件转成.py
文件
pyuic6 password_generate.ui -o password_generate.py
五、界面与逻辑分离的方法编写主程序
每次都要在逻辑入口主程序中添加的固定内容如下图,需要修改3处
:
- 从
password_generate.ui
界面生成的password_generate.py
文件导入类Ui_PasswordGenerate
; password_generate.py
文件中,取类名Ui_PasswordGenerate
下划线后的名字PasswordGenerate
添加My
改为MyPasswordGenerate
作为主程序中的类名;- 实例化的时候将
大写
名字改为小写
;
固定内容的代码,拷贝到main文件中进行修改
:
from PyQt6.QtWidgets import (
QApplication, QDialog
)
from password_generate import Ui_PasswordGenerate
import sys
class MyPasswordGenerate(Ui_PasswordGenerate, QDialog):
def __init__(self):
super().__init__()
self.setupUi(self) # 使用父类 Ui_PasswordGenerate 中的 setupUi 函数
self.show() # 展示窗口
if __name__ == '__main__':
app = QApplication(sys.argv) # 一个程序本身一定有个入口,创建 QApplication 来启动 Dialog 窗口
myPasswordGenerate = MyPasswordGenerate()
sys.exit(app.exec())
main程序直接运行即可出界面:
六、编写信号处理函数(点击按钮做操作)
此处添加了
信息弹窗提示
以及绑定了pushButton的点击命令
添加信息弹窗类QMessageBox
:
绑定pushButton的点击命令:
pushButton绑定命令执行的具体函数:
完整代码如下:
from PyQt6.QtWidgets import (
QApplication, QDialog, QMessageBox
)
from password_generate import Ui_PasswordGenerate
import sys
import string
import random
class MyPasswordGenerate(Ui_PasswordGenerate, QDialog):
def __init__(self):
super().__init__()
self.setupUi(self) # 使用父类 Ui_PasswordGenerate 中的 setupUi 函数
self.show() # 展示窗口
self.pushButton.clicked.connect(
self.new_password
)
def new_password(self):
words = (
string.digits
+ string.ascii_uppercase
+ string.ascii_lowercase
+ string.punctuation
)
words = random.sample(list(words), 20)
password = "".join(words)
self.lineEdit.setText(password)
QMessageBox.information(
self, "信息提示", "密码生成成功"
)
if __name__ == '__main__':
app = QApplication(sys.argv) # 一个程序本身一定有个入口,创建 QApplication 来启动 Dialog 窗口
myPasswordGenerate = MyPasswordGenerate()
sys.exit(app.exec())
七、使用pyinstaller打包成exe程序
打开cmd,在文件目录下打包main
文件:
pyinstaller -F -w password_generate_main.py