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.rhkb.cn/news/294534.html

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

相关文章

【Vue3源码学习】— CH2.6 effect.ts:详解

effect.ts:详解 1. 理解activeEffect1.1 定义1.2 通过一个例子来说明这个过程a. 副作用函数的初始化b. 执行副作用函数前c. 访问state.countd. get拦截器中的track调用e. 修改state.count时的set拦截器f. trigger函数中的依赖重新执行 1.3 实战应用1.4 activeEffect…

Mysql数据备份与恢复实战

文章目录 备份类型备份内容备份工具mysqldump备份 实战案例:恢复误删除的表准备工作2:30完全备份完全备份后更新数据表10:00误删students表需要恢复还原的状态开始还原恢复 为什么要备份? 备份是为了:灾难恢复:硬件故障、软件故障…

Php_Code_challenge16

题目: 答案: 解析: 所以科学计数法绕过即可。

旅游管理系统|基于Springboot的旅游管理系统设计与实现(源码+数据库+文档)

旅游管理系统目录 目录 基于Springboot的旅游管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户管理 2、景点分类管理 3、景点信息管理 4、酒店信息管理 5、景点信息 6、游记分享管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&#xf…

ZKFair 创新之旅,新阶段如何塑造财富前景

在当前区块链技术的发展中,Layer 2(L2)解决方案已成为提高区块链扩容性、降低交易成本和提升交易速度的关键技术,但它仍面临一些关键问题和挑战,例如用户体验的改进、跨链互操作性、安全性以及去中心化程度。在这些背景…

Python控制安卓模拟器——uiautomator2模块

Python控制安卓模拟器——uiautomator2模块 目录 Python控制安卓模拟器——uiautomator2模块介绍【1】安装 python【2】安装 adb1]下载[adb:[2]配置环境变量 【3】安装uiautomator2【4】连接设备(安卓模拟器)【5】u2指令控制设备常用指令 【6】安装weditor【7】元素操作元素属性…

小白的第一次sql注入实战

前言 当时最初接触安全的时候拿下的第一个shell,还是比较兴奋的,忽略一下文章写的很水。 有id尝试sql注入 找这种sql注入的站用sql检索就行了,但是最好挂代理用谷歌搜索,百度的话搜sql注入的很多被别人打过了,导致链…

钉钉服务端API报错 43008 参数需要multipart类型

钉钉服务端API报错 43008 参数需要multipart类型 problem 使用媒体文件上传接口,按照文档输入参数,结果返回报错 # 参数 {"access_token": "xxx""type": "image","media": "/Users/xxx/xxx/s…

hcia datacom课程学习(5):MAC地址与arp协议

1.MAC地址 1.1 含义与作用 (1)含义: mac地址也称物理地址,是网卡设备在数据链路层的地址,全世界每一块网卡的mac地址都是唯一的,出厂时烧录在网卡上不可更改 (2)作用&#xff1a…

constexpr与std::is_same_v碰撞会产生什么火花?

1. 只编译会用到的if分支 示例代码一中,checkType_v1和checkType_v2两个函数的区别就是if的条件里一个加了constexpr一个没加,加与不加从结果来看都一样,那在编译时和运行时各有什么区别呢? 示例代码一,test_01.cpp&…

Linux之实现Apache服务器监控、数据库定时备份及通过使用Shell脚本发送邮件

目录 一、Apache服务器监控 为什么要用到服务监控? 实现Apache服务器监控 二、数据库备份 为什么要用到数据库备份? 实现数据库备份 三、Shell脚本发送邮件 为什么要用使用Shell脚本发送邮件? 实现Shell脚本发送邮件 一、Apache服务器…

大模型日报20240401

大模型实时打《街霸》捉对PK,GPT-4居然不敌3.5,新型Benchmark火了 链接:https://news.miracleplus.com/share_link/22340 让大模型直接操纵格斗游戏《街霸》里的角色,捉对PK,谁更能打?GitHub上一种你没有见…

Windows下配置及使用Git+rsync构建文件同步工具

背景(了解): 公司的前端项目里有bash脚本,开发人员在开发完,可以跑bash脚本自动发布部署到测试环境。但是windows是没办法直接跑bash脚本的,最便捷的做法就是借用git bash这个终端来跑项目里的bash脚本。但是windows的源里并没有…

conda使用记录

linux 使用conda创建新一个新的python环境过程 conda create -n recommendation_env python3.8.18 # 指定python版本 conda env list # 查看所有的环境 conda activate recommendation_env # 激活创建的新环境 pip install flask # 安装依赖 或者 pip install flask版本号 或者…

Python+requests+Pytest+logging+allure+pymysql框架详解

一、框架目录结构 1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言 数据库断言 前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文…

简单说清楚什么是SQL Injection?

最近看完了《The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery》,在第7章:While You Are Coding的footnotes中,提到了一幅漫画: 这不仅用简单的方式说清楚了什么是SQL Injection&#…

顶顶通呼叫中心中间件-声音编码自适应配置方法(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-声音编码自适应配置方法讲解(mod_cti基于FreeSWITCH) 声音编码自适应介绍 声音编码自适应,通常在语音通信和音频处理领域中指的是一种能够根据信号特性和传输环境自动调整编码参数的技术。其目的是在不同的网络状况和音质要求下,…

uniapp开发App(一)登陆流程 判断是否登陆,是,进入首页,否,跳转到登录页

一、登陆流程 文字描述:用户进入App,之后就是判断该App是否有用户登陆过,如果有,直接进入首页,否则跳转到登陆页,登陆成功后,进入首页。 流程图如下: 二、在uniapp项目中代码实现 实…

【数据结构】AVL 树

文章目录 1. AVL 树的概念2. AVL 树节点的定义3. AVL 树的插入4. AVL 树的旋转5. AVL 树的验证6. AVL 树的删除7. AVL 树的性能 前面对 map / multimap / set / multiset 进行了简单的介绍【C】map & set,在其文档介绍中发现,这几个容器有个共同点是…

oracle19c安装-aarch64

建议 参考oracle官方文档提供的软硬件要求 https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/operating-system-checklist-for-oracle-database-installation-on-linux.html#GUID-E5C0A90E-7750-45D9-A8BC-C7319ED934F0 建议使用OracleLinux8.6及以上操作…