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
















