PyQt6的开发流程(密码生成小程序为例)

PyQt6的开发流程(密码生成小程序为例)



文章目录

  • PyQt6的开发流程(密码生成小程序为例)
    • 一、流程介绍与概览
      • 1. 界面与逻辑分离的开发流程
      • 2. PyQt6的开发流程
    • 二、打开 designer.exe 创建文件
    • 三、用QT设计师绘制界面保存成ui
      • 1. QT常用组件介绍
      • 2. 密码生成小程序界面设计
    • 四、用pyuic6把ui文件转换成python文件
    • 五、界面与逻辑分离的方法编写主程序
    • 六、编写信号处理函数(点击按钮做操作)
    • 七、使用pyinstaller打包成exe程序


  1. 用 QT 设计师绘制界面保存成 ui 文件
  2. 用 pyuic6 把 ui 文件转换成 python 文件
  3. 界面与逻辑分离的方法编写主程序
  4. 编写信号处理函数(点击按钮做操作)
  5. 使用 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

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

1
在这里插入图片描述
每次都要在逻辑入口主程序中添加的固定内容如下图,需要修改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 sysclass 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 randomclass 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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/267039.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现MACD工具判断信号:股票技术分析的工具系列(1)

Python实现MACD工具判断信号:股票技术分析的工具系列(1) 介绍代码rolling函数介绍核心代码计算指数移动平均值计算MACD指标 完整代码 介绍 先看看官方介绍: MACD (平滑异同平均线) 指标说明 DIF线:收盘价短…

“智农”-数字乡村可视化

“智农”打造数字乡村可视化,结合乡村区域实际情况,以规划完善乡村机制体系和更好服务乡村振兴为目标,坚持可持续、可复制、可扩展的建设原则,着力解决农村信息孤岛,提高农村种植技术,加快农村信息化和产业…

前端按钮动画

效果示例 代码示例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevic…

echarts vue 动画效果的水球图、波浪图教程

1、安装插件 前提是已经安装了echarts&#xff08;我的版本是4.2.1&#xff09; npm install echarts-liquidfill --save 我安装了3.1.0版本的&#xff0c;结果运行时报错"TypeError: wave.ensureState is not a function" 原因&#xff1a;echarts版本和echarts-l…

IDC 中搭建 Serverless 应用平台:通过 ACK One 和 Knative 玩转云资源

作者&#xff1a;元毅、庄宇 如何打造云上&#xff08;公共云&#xff09;、云下&#xff08;IDC 数据中心&#xff09;统一的云原生 Serverless 应用平台&#xff0c;首先我们来看一下 ChatGPT 4 会给出什么样的答案&#xff1a; 如何打造云上、云下统一的云原生 Serverless…

MySQL 多表查询 连接查询 内连接

介绍 内连接查询是两张表中交集的部分 连接模式 隐式内连接 SELECT 字段列表 FROM 表1,表2 WHERE 条件显式内连接 SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件案例 有两张表一个表为学生表&#xff0c;另一个表为班级表&#xff0c;现在需要查询学生时候在查…

2023中国PostgreSQL数据库生态大会:洞察前沿趋势,探索无限可能(附核心PPT资料下载)

随着数字化浪潮的推进&#xff0c;数据库技术已成为支撑各行各业数字化转型的核心力量。2023中国PostgreSQL数据库生态大会的召开&#xff0c;无疑为业界提供了一个深入交流、共同探索PostgreSQL数据库技术未来发展趋势的平台。本文将带您走进这场盛会&#xff0c;解析大会的亮…

Laravel Octane 和 Swoole 协程的使用分析二

又仔细研究了下 Octane 源码和 Swoole 的文档&#xff0c;关于前几天 Laravel Octane 和 Swoole 协程的使用分析中的猜想&#xff0c;得到进一步验证&#xff1a; Swoole 的 HTTP Server 启动后会创建一个 master 进程和一个 manager 进程&#xff1b;master 进程又会创建多个…

XUbuntu22.04之解决:仓库xxx没有数字签名问题(二百一十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Linux 系统安装/卸载 Nginx教程

优质博文&#xff1a;IT-BLOG-CN 一、安装Nginx 【1】首先通过Nginx官网确定需要安装的版本&#xff0c;如果Linux联网则直接在Linux服务上使用wget命令将Nginx安装包下载到/usr/local/目录下&#xff1a; [rootxxx local]# wget -c http://nginx.org/download/nginx-1.22.1.…

qt 5.15版本安装

1.qt5.15版本安装 2.安装慢时&#xff0c;切换到清华镜像源&#xff1a;.\qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/ 3.没有qt 5.15版本在旁边进行筛选&#xff0c;只选archive

雅马哈伺服器TS-S系列说明具体详情内容可参看PDF目录内容

雅马哈伺服器TS-S系列说明具体详情内容可参看PDF目录内容

c++结构体内存对齐

结构体内存对齐 试试运行下面的例子 #include <stdio.h> #include <stdlib.h>using namespace std;struct A{char c;int i; };struct B{char c; int i; double d; };struct C{char c;int i;double d;char c1; };int main(){printf("sizeof(A): %d\n"…

netlink原理及应用

什么是netlink netlink是一种基于网络的通信机制&#xff0c;允许内核内部、内核与用户态应用之间甚至用户态应用之间进行通信&#xff1b;netlink的主要作用是内核与用户态之间通信&#xff1b;它的思想是&#xff0c;基于BSD的socket使用网络框架在内核和用户态之间进行通信…

CloudCanal x Hive 构建高效的实时数仓

简述 CloudCanal 最近对于全周期数据流动进行了初步探索&#xff0c;打通了Hive 目标端的实时同步&#xff0c;为实时数仓的构建提供了支持&#xff0c;这篇文章简要做下分享。 基于临时表的增量合并方式基于 HDFS 文件写入方式临时表统一 Schema任务级的临时表 基于临时表的…

0基础跨考计算机|408保姆级全年计划

我也是零基础备考408&#xff01; 虽说是计算机专业&#xff0c;但是本科一学期学十几门,真的期末考试完脑子里什么都不进的...基本都是考前一周发疯学完水过考试...&#x1f605; 想要零基础跨考可以直接从王道开始&#xff01;跟教材一点一点啃完全没必要&#x1f978; 现在…

ThreadLocal 为什么会内存泄漏吗?是怎么产生的?

ThreadLocal是什么 ThreadLocalMap 如何避免泄漏 ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射&#xff0c;各个线程之间的变量互不干扰&#xff0c;在高并发场景下&#xff0c;可以实现无状态的调用&…

vscode 引入外部依赖包

背景 我要在vscode中写一些antlr代码生成的cpp代码&#xff0c;但是在引入头文件#include "antlr4-runtime.h"的时候&#xff0c;出现报错&#xff0c;显示没有这个头文件&#xff0c;显然这是我们没有导入相关的包&#xff0c;因此我首先尝试了将antlr4的依赖源码在…

安全防御综合实验

需求&#xff1a; 1、办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换&#xff09; 2、分公司设备可以通过总公司的移动链路和电信链路访问DMZ区的http服务器 3、分公司内部的客户端可以通过公网地址访问到…

node.js和electron安装

文章目录 一、node.js安装1.node.js下载安装2.设置镜像 二、其它问题1.文件夹创建错误2.electron安装错误 一、node.js安装 1.node.js下载安装 参考B站视频node.js安装&#xff0c;没有按视频中设置镜像 2.设置镜像 参考&#xff1a;https://npmmirror.com/ npm config se…