PyQt6案例1:密码生成器小程序

这里写自定义目录标题

  • 一、用QT设计师绘制界面保存成ui文件
  • 二、用pyuic6把ui文件转换成python文件
  • 三、界面与逻辑分离的方法编写主程序
  • 四、编写信号处理函数
  • 五、使用pyinstaller打包成exe程序
  • 六、小结

一、用QT设计师绘制界面保存成ui文件

1、打开QTdesigner
2、选择Dialog without Buttons,并单击“创建”按钮。
PyQt6案例1:密码生成器小程序_第1张图片
3、拖拽添加PushButton按钮。
PyQt6案例1:密码生成器小程序_第2张图片
4、变更Push Button的文本属性。双击Push Button按钮,输入“生成一个新的密码”
PyQt6案例1:密码生成器小程序_第3张图片
5、拖拽Line Edit生成一个输入框。
PyQt6案例1:密码生成器小程序_第4张图片
6、改变Push Button的字体。在属性栏中选择font属性,选择24号字体,点击“OK”。
PyQt6案例1:密码生成器小程序_第5张图片
7、简单布局。右键单击窗体,选择“布局–>垂直布局”。
PyQt6案例1:密码生成器小程序_第6张图片
8、改变窗体名称。在windowTitle属性上,输入“密码生成小程序”。

PyQt6案例1:密码生成器小程序_第7张图片
9、修改对象名字。将“object”的对象名字改为“PasswordGerate”
PyQt6案例1:密码生成器小程序_第8张图片

10、保存文件。“ctrl+s”对文件进行保存。文件名称保存为“password_generate”。文件的默认格式为:ui。

二、用pyuic6把ui文件转换成python文件

1、在终端输入:

 conda activate mypyqt6

2、找到项目目录,并复制路径:

 D:\pycharm\anti\pyqt6\demo02

3、将“ui”格式的文件转化为“py”格式。在终端中输入:

pyuic6 password_generate.ui -o password_generate.py

4、查看新生成的文件password_generate.py

# Form implementation generated from reading ui file 'password_generate.ui'
#
# Created by: PyQt6 UI code generator 6.4.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.

from PyQt6 import QtCore, QtGui, QtWidgets

class Ui_PasswordGenerate(object):
    def setupUi(self, PasswordGenerate):
        PasswordGenerate.setObjectName("PasswordGenerate")
        PasswordGenerate.resize(612, 412)
        self.verticalLayout = QtWidgets.QVBoxLayout(PasswordGenerate)
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButton = QtWidgets.QPushButton(PasswordGenerate)
        font = QtGui.QFont()
        font.setPointSize(24)
        self.pushButton.setFont(font)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.lineEdit = QtWidgets.QLineEdit(PasswordGenerate)
        font = QtGui.QFont()
        font.setPointSize(24)
        font.setBold(False)
        self.lineEdit.setFont(font)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout.addWidget(self.lineEdit)

        self.retranslateUi(PasswordGenerate)
        QtCore.QMetaObject.connectSlotsByName(PasswordGenerate)

    def retranslateUi(self, PasswordGenerate):
        _translate = QtCore.QCoreApplication.translate
        PasswordGenerate.setWindowTitle(_translate("PasswordGenerate", "密码生成小程序"))
        self.pushButton.setText(_translate("PasswordGenerate", "生成一个新的密码"))

三、界面与逻辑分离的方法编写主程序

1、与password_generate.py同级,建立新的py文件“password_generate_main.py”。
2、编写“password_generate_main.py”代码。

#引入PyQt6模块
from PyQt6.QtWidgets import (
    QApplication,QDialog
)
#引入平级的Ui_PasswordGenerate模块
from password_generate import Ui_PasswordGenerate
#引用系统模块
import sys

#创建MyPasswordGenerate类
class MyPasswordGenerate(Ui_PasswordGenerate,QDialog):
    #构造父类函数
    def __init__(self):
        super().__init__()#继承父类

        self.setupUi(self)#调用父类Ui_PasswordGenerate的函数setupUi

        self.show()#显示窗口

#创建main函数,启动程序
if __name__ == '__main__':
    app=QApplication(sys.argv)#程序入口函数

    myPasswordGenerate=MyPasswordGenerate()

    sys.exit(app.exec())#退出系统

3、运行“password_generate_main.py”,效果如下:
PyQt6案例1:密码生成器小程序_第9张图片

四、编写信号处理函数

1、完善步骤三中的代码,使其具备信息传递功能。

#引入PyQt6模块
from PyQt6.QtWidgets import (
    QApplication,QDialog,QMessageBox
)
#引入平级的Ui_PasswordGenerate模块
from password_generate import Ui_PasswordGenerate
#引用系统模块
import sys
#引入string模块
import string
#引入random随机数模块
import random

#创建MyPasswordGenerate类
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)#按钮连接绑定函数new_password

    #创建new_password函数
    def new_password(self):
        words=string.digits+string.ascii_uppercase+string.ascii_lowercase+string.punctuation#生成密码的格式是:数字+大写字母+小写字母+标点符号
        words=random.sample(list(words),20)#重写words,使其包含20个字符
        password="".join(words)#生成密码
        self.lineEdit.setText(password)#将生成的密码传递到lineEdit控件
        QMessageBox.information(self,"信息提示","密码生成成功")
#创建main函数,启动程序
if __name__ == '__main__':
    app=QApplication(sys.argv)#程序入口函数

    myPasswordGenerate=MyPasswordGenerate()

    sys.exit(app.exec())#退出系统

2、效果如图:
PyQt6案例1:密码生成器小程序_第10张图片
3、每次更新密码是不一样的。

五、使用pyinstaller打包成exe程序

1、使用pyinstaller将程序进行打包。命令如下:

pyinstaller -F -w password_generate_main.py

PyQt6案例1:密码生成器小程序_第11张图片

2、打包结果如下:
在这里插入图片描述

六、小结

本文通过一个PyQt6的小案例,实际展示了PyQt6的用法。希望对新手学习者有帮助。

你可能感兴趣的:(python,开发语言,pyqt)