当前位置: 首页 > news >正文

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

在这里插入图片描述

相关文章:

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

PyQt6的开发流程(密码生成小程序为例) 文章目录 PyQt6的开发流程(密码生成小程序为例)一、流程介绍与概览1. 界面与逻辑分离的开发流程2. PyQt6的开发流程 二、打开 designer.exe 创建文件三、用QT设计师绘制界面保存成ui1. QT常用…...

思腾云计算中心 | 5千平米超大空间,基础设施完善,提供裸金属GPU算力租赁业务

2021年,思腾合力全资收购包头市易慧信息科技有限公司,正式开启云计算业务。思腾云计算中心占地2400平米,位于包头市稀土高新区,毗邻多家知名企业,地理位置优越,交通便利,是区内重要的信息化产业…...

【Leetcode每日一题】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(难度⭐⭐)(18)

1. 题目解析 Leetcode链接:34. 在排序数组中查找元素的第一个和最后一个位置 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于找到给定目标值所在的数组下标区间,设计一个O(logn)的算法。 2. 算法原…...

远程连接 vscode 出错 “远程主机可能不符合 glibc 和 libstdc++ VS Code 服务器的先决条件”

原因: vscode 版本是 1.86,服务器上的 glibc 和 libstdc 版本不满足 要求(2.28 和 3.4.25)。 解决: 1、下载 1.85.2,解压直接运行 Code.exe。 2、回退 Remote-ssh 到 0.107.1。 参考: vscode 1.86版本远程ssh不兼容旧…...

Maven入门:Java项目构建和管理的利器

Maven入门:Java项目构建和管理的利器 Maven 是一个项目管理和综合工具,它基于项目对象模型(POM)概念。Maven 可以管理项目的构建、报告和文档。以下是一篇介绍 Maven 配置和应用的教程文章。 Maven简介 Maven 使用其核心概念 POM…...

《游戏引擎架构》 -- 学习4

资源及文件系统 文件系统 游戏引擎的文件系统API通常提供以下功能: 搜需路径:是含一串路径的字符串,各路径之间以特殊字符(如冒号或分号)分隔,找文件时就会从这些路径进行搜寻。例如在命令行下执行程序&a…...

Wagtail安装运行并结合内网穿透实现公网访问本地网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&#xf…...

10分钟快速开始SkyWalking结合Springboot项目

10分钟快速开始SkyWalking结合Springboot项目 实习期间,公司让我去学习一下链路追踪如何集成到Springboot项目中。 为此有两个方案: 1.opentelementryjaegerprometheus opentelementry 收集器收集线上的metrics和traces,然后发送给jaeger和p…...

STM32—触摸键

目录 1 、 电路构成及原理图 2 、编写实现代码 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 此笔记基于朗峰 STM32F103 系列全集成开发板的记录。 1 、 电路构成及原理图 触摸键简单的了解就是一次电容的充放电过程。从原理图可以看出,触摸键 …...

python中字典(dict)原理及其操作

原理 Python中的字典(Dictionary)是一种基于哈希表(Hash Table)的实现,提供了高效的键值对(Key-Value Pair)存储和访问机制。了解字典的工作原理有助于更好地理解其性能特性以及为什么在某些情…...

​​​​​​​​​​​​​​.NET Core Web API实现微服务集群部署

​​​​​​​.NET Core Web API实现微服务集群部署 在.NET Core Web API中实现微服务集群部署通常涉及多个步骤,包括服务拆分、容器化、服务注册与发现、负载均衡等。以下是一个简化的步骤指南,用于在.NET Core中构建和部署微服务集群: 服…...

网络安全与信创产业发展:构建数字时代的护城河

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…...

外包干了3个月,技术倒退1年。。。

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…...

Unity发布webgl获取浏览器的URL

Unity发布webgl获取浏览器的URL Unity发布webgl之后获取浏览器的url 在unity中创建文件夹Plugins,然后添加添加文件UnityGetBrowserURL.jslib var GetUrlFunc {//获取地址栏的URLStringReturnValueFunction: function () {var returnStr window.top.location.hre…...

StarRocks实战——多维分析场景与落地实践

目录 一、OLAP 系统历史背景 1.1 历史背景与痛点 1.2 组件诉求 二、StarRocks 的特点和优势 2.1 极致的查询性能 2.2 丰富的导入方式 2.3 StarRocks 的优势特点 三、多维分析的运用场景 3.1 实时计算场景 / 家长监控中心 3.2 实时更新模型选择 3.2.1 更新模型UNIQU…...

golang 函数式编程库samber/mo使用: Result

golang 函数式编程库samber/mo使用: Result 如果您不了解samber/mo库, 请先阅读上一篇 Option , 这篇讲述结构体Result的使用 Result和Option区别 samber/mo有了Option, 为什么还有Result呢? 我们先看看定义: Opt…...

Python 实现 CHO 指标计算(济坚指数):股票技术分析的利器系列(12)

Python 实现 CHO 指标计算(济坚指数):股票技术分析的利器系列(12) 介绍算法公式 代码rolling函数介绍核心代码计算 CHO 完整代码 介绍 CHO(济坚指数)是一种在金融领域中用于衡量市场波动性和风险的指数 先…...

MySQL的SQL语句

1.MySQL连接 连接命令一般是这样写的 mysql -h$ip -P$port -u$user -p比如:mysql -h127.0.0.1 -P3306 -uroot -p -h 指定连接的主机地址;-P 指定连接端口号;-u 指定用户名 -p指定用户名密码 2.SQL分类 DDL(Data Definition Language) 数据定义语言&…...

ABAP 发送带EXCEL邮件

前言 没啥特殊需求,就是有个库龄报表用户想整邮件发送 实现 用的最简单的XLS文件作为excel附件发送出去 观察XLS文件的纯文本格式,每列之间用TAB制表符分隔,每行之间用回车符分隔 思路也比较明确,在SAP中实现这种格式&#xf…...

Linux Nginx SSL 证书配置正确,扔展示不安全

Nginx SSL 配置 首先我能够确定自己的Nginx SSL是配置正确的: 问题展示 通过浏览器访问自己域名,点击不安全后查看证书,展示的证书并不是自己所配置的证书,如下: 通过curl -vvv https://域名访问返回的证书是过期…...

5种智能匹配模式:Illustrator脚本replaceItems.jsx如何让设计元素替换效率提升20倍

5种智能匹配模式:Illustrator脚本replaceItems.jsx如何让设计元素替换效率提升20倍 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在Adobe Illustrator设计工作中&…...

【DeepSeek API接入实战指南】:20年架构师亲授5大避坑法则与3小时极速接入方案

更多请点击: https://intelliparadigm.com 第一章:DeepSeek API接入开发教程 DeepSeek 提供了稳定、高性能的大模型 API 接口,支持文本生成、对话补全与函数调用等多种能力。开发者需通过 RESTful 方式调用其 OpenAPI v1 接口,所…...

Python 异步HTTP客户端实战:aiohttp深度解析

Python 异步HTTP客户端实战:aiohttp深度解析 引言 在现代Python后端开发中,异步HTTP客户端是构建高性能服务的关键组件。作为一名从Rust转向Python的后端开发者,我深刻体会到异步编程在处理大量并发请求时的优势。aiohttp作为Python生态中最流…...

2025年英雄联盟国服内存级换肤技术深度解析:R3nzSkin架构设计与实现

2025年英雄联盟国服内存级换肤技术深度解析:R3nzSkin架构设计与实现 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 你是否曾想过&#xff…...

如何在5分钟内配置鸣潮自动化助手,实现多账号高效管理?

如何在5分钟内配置鸣潮自动化助手,实现多账号高效管理? 【免费下载链接】better-wuthering-waves 🌊更好的鸣潮 - 后台自动剧情 项目地址: https://gitcode.com/gh_mirrors/be/better-wuthering-waves 厌倦了《鸣潮》中重复的剧情对话…...

一次讲清本地大模型语音识别三件套:Vulkan 为什么是加速主线,而说话人识别为何成为唯一短板

把 whisper.cpp、sherpa-onnx、llama.cpp 三套引擎整合到一起,再用 Electron 包成桌面应用,这个技术思路本身并不复杂。真正考验工程功力的,是面向完全不懂技术的最终端用户,怎样让这些引擎尽可能“一键加速”,同时还不…...

Gemini3.1Pro透明化指南:模型卡与数据卡入口解析

在 2026 年,越来越多的团队开始把“模型怎么用”升级为“模型用得是否可控、可追溯”。尤其是涉及合规审计、数据治理与风险评估时,工程侧最需要的往往是:能快速找到模型信息与数据来源的透明化页面入口,确保链路清晰、记录完整、…...

深入解析session-guardian:分布式会话并发安全与生命周期管理实践

1. 项目概述与核心价值最近在折腾一个分布式系统的监控项目,遇到了一个挺典型的问题:用户会话(Session)在集群环境下频繁丢失,导致用户体验断崖式下跌。排查了一圈,从负载均衡策略到Redis集群配置&#xff…...

Java 100 天进阶之路 | 从入门到上岗就业 · 完整目录导航

📚 Java 100 天进阶之路 | 从入门到上岗就业 完整目录导航 不背八股文,不堆概念。44篇基础56篇进阶,100天助你达到Java就业水平,从容面对技术面试。 零差评Java教程,从入门到微服务,每篇都有代码、避坑和面…...

短视频矩阵运营方法论——不同平台多账号协同的底层逻辑与避坑指南

短视频矩阵运营已成为品牌获取规模化流量的核心手段,但多账号协同背后的平台算法逻辑、账号关联风险、内容差异化策略等复杂问题,常常导致运营者踩入“雷区”。本文基于抖音、微信视频号、小红书三大主流平台官方规则与公开算法解读,系统梳理…...