4月2日 qt密码生成小程序(可选择生成密码的格式),基于Python框架下的pyqt6

4月2日 密码生成小程序

代码展示:

import stringfrom PyQt6.QtWidgets import (QApplication, QDialog,QMessageBox
)
from untitled import Ui_PasswordGender
import  sys
import  string  # py模块含有字符
import randomclass MyPasswordGenerate(Ui_PasswordGender, QDialog, ):def __init__(self):super().__init__()self.setupUi(self)self.show()self.pushButton.clicked.connect(self.new_password)def new_password(self):site =self.lineEdit_site.text()if not site:QMessageBox.warning(self,'信息提示','请输入网站名')returnwords =[]if self.checkBox_upper.isChecked():words.append(string.ascii_uppercase * 2)# 因为以下默认生成的字符串个数,都是默认的10个,当只勾选一个格式,比如说只选数字,就达不到要求的20个,所以就*2if self.checkBox_lover.isChecked():words.append(string.ascii_lowercase * 2)if self.checkBox_number.isChecked():words.append(string.digits * 2)if self.checkBox_puc.isChecked():words.append(string.punctuation * 2)if not words:words = (string.digits  # 生成数字+ string.ascii_uppercase  # 生成大写字母+ string.ascii_lowercase  # 生成小写字母+ string.punctuation      # 生成标点符号)else:words = "".join(words)words = random.sample(list(words), 20)  # list(words)在生成的字符串中,取20个字符password = ''.join(words)self.lineEdit_resilt.setText(password)   # 把密码写入lineEdit的框中with open('我的密码本.txt','a',encoding='utf-8') as f:f.write(f'{site}\t{password}\n')QMessageBox.information(self,'信息提示','密码生成成功')if __name__ == '__main__':app = QApplication(sys.argv)  # 启动应用程序myPasswordGenerate = MyPasswordGenerate() # MyPasswordGenerate类中已经有show()了,所以可以直接显示窗口sys.exit(app.exec())

ui_Python文件展示:

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# 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, QtWidgetsclass Ui_PasswordGender(object):def setupUi(self, PasswordGender):PasswordGender.setObjectName("PasswordGender")PasswordGender.resize(578, 377)self.verticalLayout = QtWidgets.QVBoxLayout(PasswordGender)self.verticalLayout.setObjectName("verticalLayout")self.horizontalLayout = QtWidgets.QHBoxLayout()self.horizontalLayout.setObjectName("horizontalLayout")self.label = QtWidgets.QLabel(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)self.label.setFont(font)self.label.setObjectName("label")self.horizontalLayout.addWidget(self.label)self.lineEdit_site = QtWidgets.QLineEdit(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)font.setBold(True)self.lineEdit_site.setFont(font)self.lineEdit_site.setObjectName("lineEdit_site")self.horizontalLayout.addWidget(self.lineEdit_site)self.verticalLayout.addLayout(self.horizontalLayout)self.horizontalLayout_2 = QtWidgets.QHBoxLayout()self.horizontalLayout_2.setObjectName("horizontalLayout_2")self.checkBox_upper = QtWidgets.QCheckBox(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)self.checkBox_upper.setFont(font)self.checkBox_upper.setObjectName("checkBox_upper")self.horizontalLayout_2.addWidget(self.checkBox_upper)self.checkBox_lover = QtWidgets.QCheckBox(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)self.checkBox_lover.setFont(font)self.checkBox_lover.setObjectName("checkBox_lover")self.horizontalLayout_2.addWidget(self.checkBox_lover)self.checkBox_number = QtWidgets.QCheckBox(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)self.checkBox_number.setFont(font)self.checkBox_number.setObjectName("checkBox_number")self.horizontalLayout_2.addWidget(self.checkBox_number)self.checkBox_puc = QtWidgets.QCheckBox(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)self.checkBox_puc.setFont(font)self.checkBox_puc.setObjectName("checkBox_puc")self.horizontalLayout_2.addWidget(self.checkBox_puc)self.verticalLayout.addLayout(self.horizontalLayout_2)self.pushButton = QtWidgets.QPushButton(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)font.setBold(True)self.pushButton.setFont(font)self.pushButton.setObjectName("pushButton")self.verticalLayout.addWidget(self.pushButton)self.lineEdit_resilt = QtWidgets.QLineEdit(parent=PasswordGender)font = QtGui.QFont()font.setPointSize(24)font.setBold(True)self.lineEdit_resilt.setFont(font)self.lineEdit_resilt.setObjectName("lineEdit_resilt")self.verticalLayout.addWidget(self.lineEdit_resilt)self.retranslateUi(PasswordGender)QtCore.QMetaObject.connectSlotsByName(PasswordGender)def retranslateUi(self, PasswordGender):_translate = QtCore.QCoreApplication.translatePasswordGender.setWindowTitle(_translate("PasswordGender", "密码生成小程序"))self.label.setText(_translate("PasswordGender", "请输入网站名称:"))self.checkBox_upper.setText(_translate("PasswordGender", "大写字母"))self.checkBox_lover.setText(_translate("PasswordGender", "小写字母"))self.checkBox_number.setText(_translate("PasswordGender", "数字"))self.checkBox_puc.setText(_translate("PasswordGender", "标点符号"))self.pushButton.setText(_translate("PasswordGender", "生成新密码"))

效果展示:

可以以选择生成格式,可多选,也可以都不选(即混合模式)

在这里插入图片描述

生成后并存成txt文件中(以追加的方式)

在这里插入图片描述

生成打包文件,还是先打开

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

打包语法之全部打包

 pyinstaller -F -w password_generate_main.py # password_generate_main.py是我运行的主程序py文件

在这里插入图片描述

打包后运行效果:

在这里插入图片描述

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

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

相关文章

快速入门Linux,Linux岗位有哪些?(一)

文章目录 Linux与Linux运维操作系统?操作系统图解 认识LinuxLinux受欢迎的原因什么是Linux运维Linux运维岗位Linux运维岗位职责Linux运维架构师岗位职责Linux运维职业发展路线计算机硬件分类运维人员的三大核心职责 运维人员工作(服务器)什么…

python爬虫----了解爬虫(十一天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

6000000IOPS!FASS×kunpeng920全新突破

实测数据详见下文 网络环境 前端和后端网均采用100GE网络,管理网采用1Gbps以太网。 前端网和后端网通过不同网段隔离,与管理网物理隔离。 软硬件配置 存储端配置: 客户端配置: 软件配置: 存储集群配置: …

【MapBox】实现实时飞行轨迹功能

之前写了一篇MapBox添加带箭头的轨迹线,现在在这个基础之上实现获取到无人机的推送点位数据实时飞行的功能 首先创建实例,将无人机的图标加载在地图上 const MAP_UAV_FLIGHT_ING (values, layerKey 无人机飞行) > {ClearUAVMap();const map GET_…

Linux面试题汇总!附答案详解!学习提升必备!(30w+收藏)

Linux 概述 什么是Linux Unix和Linux有什么区别? 什么是 Linux 内核? Linux的基本组件是什么? Linux 的体系结构 BASH和DOS之间的基本区别是什么? Linux 开机启动过程? Linux系统缺省的运行级别? L…

高效学习方法:冥想背诵,看一句念一句,再每个词分析位置及语法等合理性,忘记哪个词再看猜下为什么会忘,跟自己的表达哪里不一样。

原则:易学则易行,则效果最好。《易经》 你提到的这种学习方法结合了多种记忆和理解技巧,可以帮助提高学习效率。下面是对这种方法的一个详细解释和一些建议: 冥想背诵:通过冥想来集中注意力,可以帮助你在没…

批量邮箱API发送邮件时如何提高发送效率?

批量邮箱API发送邮件的方法?如何用API批量发送邮件? 如何在使用批量邮箱API发送邮件时提高发送效率,却是众多企业和开发者所关注的焦点。AokSend将从多个方面探讨如何优化批量邮箱API发送邮件的效率,确保邮件能够迅速、准确地送达…

【C++】vector系列力扣刷题日志(136.只出现一次的数字,118.杨辉三角,26.删除有序数组中的重复项,260.只出现一次的数字 |||)

目录 136.只出现一次的数字 118.杨辉三角 26.删除有序数组中的重复项 260.只出现一次的数字 ||| vector的详细介绍及用法这里就不过多赘述了,可以参考上一篇博客:vector的介绍及使用说明 136.只出现一次的数字 题目: 给你一个 非空 整数…

开源代码分享(17)—基于yalmip+cplex的微电网优化调度(附matlab代码)

1基本概念 微网(Micro-Grid,MG)是进行电能调度时常见的概念,作为组织各分布式单元的结构。微网概念的提出旨在实现分布式电源的灵活、高效应用,解决数量庞大、形式多样的分布式电源并网问题[8]。微网中集成了电源、储能…

ZooKeeper 的持久化机制

持久化的定义: 数据,存到磁盘或者文件当中。机器重启后,数据不会丢失。内存 -> 磁盘的映射,和序列化有些像。 ZooKeeper 的持久化: SnapShot 快照,记录内存中的全量数据TxnLog 增量事务日志&#xff…

11.牛客---链表分割(Java版)

又没找到题目链接 题解: 错误之系列之一 错误之系列之二 代码

MyBatis 解决上篇的参数绑定问题以及XML方式交互

前言 上文:MyBatis 初识简单操作-CSDN博客 上篇文章我们谈到的Spring中如何使用注解对Mysql进行交互 但是我们发现我们返回出来的数据明显有问题 我们发现后面三个字段的信息明显没有展示出来 下面我们来谈谈解决方案 解决方案 这里的原因本质上是因为mysql中和对象中的字段属性…

2024年最受欢迎的 19 个 VS Code 主题排行榜

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

GROBID库文献解析

1. 起因 由于某些原因需要在大量的文献中查找相关内容,手动实在是太慢了,所以选择了GROBID库进行文献批量解析 2. GROBID介绍 GROBID是一个机器学习库,用于将PDF等原始文档提取、解析和re-structuring为结构化的XML/TEI编码文档&#xff0…

pytorch yolov5+Deepsort实现目标检测和跟踪+单目测距

最近一直在整理单目测距的内容,想着检测单目测距都写完了,顺手也写个检测跟踪单目测距,算是总结下这部分内容吧,如果有错误,还请不吝赐教!! 参考文献: YOLOv5DeepSort实现目标跟踪 pytorch yolo…

郭天祥新概念51单片机(第四期读书笔记)

时钟周期、状态周期、机器周期、指令周期与晶振频率之间的关系 1、晶振频率与脉冲的关系 假设单片机的晶振频率是12MHz,那么它的一个脉冲为1/12微秒;晶振单位时间发出的脉冲则为: 12 ∗ 1 0 6 12*10^6 12∗106。 假设单片机的晶振频率是4MH…

Python 音频处理工具库之pydub使用详解

概要 在音频处理领域,Python pydub 库是一个功能强大且易于使用的工具,它可以帮助开发者处理音频文件的各种操作,如剪切、合并、转换格式、调整音量等。本文将详细介绍 pydub 库的功能、用法以及一些实际应用案例,帮助大家更好地了解和使用这个强大的音频处理工具。 什么是…

数据守护者:揭秘备份数据的终极策略

在数字化日益深入的今天,备份数据的重要性不言而喻。无论是个人用户还是企业机构,数据都是最宝贵的资产之一。一旦数据丢失或受损,可能会导致无法挽回的损失,甚至影响业务的正常运转。因此,备份数据成为了一种必要的安…

Linux中查看文件内容的命令

文章目录 一、七类常见的Linux的文件二、显示命令三、分页显示四、显示文件前后内容五、压缩、解压缩六、补充 一、七类常见的Linux的文件 字符文件类型-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。在find命令中,type 选项中用 f来表示d目录…

B站海外商业化探索之路

本期作者 背景 业务背景 B站(bilibili)出海以来,深耕内容生态和用户播放体验,业务发展逐渐步入正轨,用户体量稳中有升,目前在东南亚视频APP领域占领了一定的市场份额。 如何探索和实施商业化策略&#xff…