【PyQt】04-Designer
文章目录
- 前言
- 一、初级 Designer
- 1.1 拖拽设计界面
- 1.2 搞定之后记得保存ui文件
- 1.3 载入代码
- 1.4 运行结果
- 二、登入界面
- 代码
- 效果展示
- 账号密码错误时
- 账号和密码正确
- 总结
前言
自然还是跟着王铭东老师学的
一、初级 Designer
1.1 拖拽设计界面

进度条是这个

1.2 搞定之后记得保存ui文件

1.3 载入代码
'''
#Author :susocool
#Creattime:2024/1/31
#FileName:013-Qt Designer
#Description:
'''
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5 import uicif __name__ == "__main__" :app = QApplication(sys.argv)ui = uic.loadUi("hello.ui")ui.show()app.exec_()
此时,如果出现报错,在 ‘init.pyi’ 中找不到引用 ‘uic’
可以直接忽视,对程序运行影响不大。
顺便一提,我每次在写Python程序的时候"main"总是忘记写下划线,真的很粗心。
1.4 运行结果

调用成功
导入当前路径下的某个文件
./文件

一样可以实现效果
二、登入界面

预览

信号与槽编辑器

增加信号与槽

发送者选择
如何查看按键的名称


信号选择


代码
'''
#Author :susocool
#Creattime:2024/1/31
#FileName:013-Qt Designer
#Description:登入界面-1
'''import sys
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import *
from PyQt5 import uicclass MyWindow(QWidget):def __init__(self):super().__init__()self.init_ui()self.login_attempt = 6 # 登入尝试次数self.locked = False # 是否锁定self.countdown = 10 # 解锁倒计时的秒数【设置成全局变量】def init_ui(self):self.ui = uic.loadUi("./login.ui")self.user_name_Qwidget = self.ui.lineEdit # 用户输入框self.password_qwidget = self.ui.lineEdit_2 # 密码输入self.login_bnt = self.ui.pushButton # 登入按键self.forget_password_bnt = self.ui.pushButton_2 # 忘记密码按钮self.textBrowser = self.ui.textBrowser # 文本显示区域# 绑定信号与槽函数self.login_bnt.clicked.connect(self.login)def login(self):"""登入按钮的槽函数"""if self.locked:# 如果处于锁定状态self.textBrowser.setText("登入已锁定,请稍等。。。")returnuser_name = self.user_name_Qwidget.text()password = self.password_qwidget.text()if user_name == "admin" and password == "123456":self.textBrowser.setText("欢迎%s"%user_name)self.textBrowser.repaint()self.login_attempt = 0 # 登入成功,重置次数else:self.login_attempt -= 1self.textBrowser.setText(f"用户名或者密码错误,请重新输入\n你还有{self.login_attempt}次机会")if self.login_attempt == 0:self.textBrowser.append("\n 登入已锁定,请稍等10s")self.locked = Trueself.countdown = 10 # 重置倒计时秒数self.countdown_timer = QTimer() # 倒计时的计时器self.countdown_timer.timeout.connect(self.update_countdown)self.countdown_timer.start(1000) # 每隔1秒触发一次def update_countdown(self):"""重载倒计时函数"""if self.countdown > 0:self.textBrowser.append(f"请等待:{self.countdown}秒后解锁")self.countdown -= 1else:self.unlock()def unlock(self):"""解锁函数"""self.locked = Falseself.textBrowser.append("\n 解锁完成,请重新输入")self.user_name_Qwidget.clear()self.password_qwidget.clear()self.countdown_timer.stop() # 停止倒计时计时器if __name__ == '__main__':app = QApplication(sys.argv)w = MyWindow()# 展示窗口w.ui.show()app.exec()
效果展示
账号密码错误时
设置有6次输入机会,如果账号或者密码错误会显示输入错误,当输入错误到达6次,会进入锁定状态,倒计时10s后才允许继续用户输入。


倒计时啦~


账号和密码正确

总结
-
这篇博文记录了结合QTdesigner和PyQt设计一个界面。
-
双击文本编辑的控件可以修改内容
-
最开始修改代码的时候,self.countdown设置成局部变量,导致倒计时的时候总是莫名其妙,需要改成全局变量才是达到预期,更直接地控制倒计时的逻辑,使得代码结构更加清晰。
相关文章:
【PyQt】04-Designer
文章目录 前言一、初级 Designer1.1 拖拽设计界面1.2 搞定之后记得保存ui文件1.3 载入代码1.4 运行结果 二、登入界面代码效果展示账号密码错误时账号和密码正确 总结 前言 自然还是跟着王铭东老师学的 一、初级 Designer 1.1 拖拽设计界面 进度条是这个 1.2 搞定之后记得保…...
第4节、电机多段转动【51单片机+L298N步进电机系列教程】
↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍用控制步进电机三个主要参数角度、速度、方向,实现简单的步进电机多段控制 一、目标功能 输入多个目标角度,以及每个角度对应的速度,实现步进电机的多段多速…...
算法学习——华为机考题库1(HJ1 - HJ10)
算法学习——华为机考题库1(HJ1 - HJ10) HJ1 字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述&…...
PSQL常用操作
目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾,还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了),实操记录,版本pgsql12…...
C++ “万能血“ void*指针
本篇文章我们来介绍一下C “万能血” void指针 为什么说他万能呢? 原因:C void* 是一种特殊的指针类型,可用于存放任意对象的地址。在函数传参中也可以作为任何实参的形参 void型详细介绍 void* 是C中的一种特殊的指针类型,被称为"无类…...
微信小程序新手入门教程四:样式设计
WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,决定了 WXML 的组件会怎么显示。 WXSS 具有 CSS 大部分特性,同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS …...
类银河恶魔城学习记录1-6 Flip基本设置源代码 P33
Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; us…...
【Git教程】(一)基本概念 ——工作流、分布式版本控制、版本库 ~
Git教程 基本概念 1️⃣ 为什么要用 Git2️⃣ 为什么要用工作流3️⃣ 分布式版本控制4️⃣ 版本库5️⃣ 简单的分支创建与合并🌾 总结 在本章中,将介绍一个分布式版本控制系统的设计思路,以及它与集中式版本控制系统的不同之处。除此之外&am…...
【QT】VS-code报错:LNK2019: 无法解析的外部符号
目录 0.环境 1.问题简述 2.分析报错原因 3.解决方法 1)set() 相关语句 2)target_link_libraries() 相关语句 4.参考 0.环境 windows11 、 vs-code 、 qt 、 c、编译器为vs2019-x86_amd64 1.问题简述 项目编译release版本时会报错:报错…...
基于 NXP S32K344 的汽车通用评估板方案
S32K3xx 系列是 NXP 基于 ARMCortex-M7 的汽车工业级 MCU,符合 ISO26262 ASIL-D 汽车功能安全等级,支持 ASIL B/D 安全应用,提供了一个可扩展的平台,具有下一代安全性、可扩展性、连接性和低功耗特性。适用于可能会在严酷环境下工…...
WebAssembly002 FFmpegWasmLocalServer项目
项目介绍 https://github.com/incubated-geek-cc/FFmpegWasmLocalServer.git可将音频或视频文件转换为其他可选的多媒体格式,并导出转码的结果 $ bash run.sh FFmpeg App is listening on port 3000!运行效果 相关依赖 Error: Cannot find module ‘express’ …...
瑞_力扣LeetCode_二叉树相关题
文章目录 说明题目 144. 二叉树的前序遍历题解 题目 94. 二叉树的中序遍历题解 题目 145. 二叉树的后序遍历题解 题目 105. 从前序与中序遍历序列构造二叉树题解 题目 106. 从中序与后序遍历序列构造二叉树题解 🙊 前言:本文章为瑞_系列专栏之《刷题》的…...
Axios设置token到请求头的三种方式
1、为什么要携带token? 用户登录时,后端会返回一个token,并且保存到浏览器的localstorage中,可以根据localstorage中的token判断用户是否登录,登录后才有权限访问相关的页面,所以当发送请求时,都要携带to…...
微服务介绍、使用 Nacos 实现远程调用以及 OpenFeign 的使用
1 微服务的概念 区别于单体项目 单体项目拆分成微服务项目的目标:高内聚、低耦合 拆分思路 纵向拆分:根据功能模块 横向拆分:抽取可复用模块 2 微服务拆分——远程调用 背景:微服务单一职责,每个服务只有自己的功能…...
Arthas使用教程—— 阿里开源线上监控诊断产品
文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 :启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 (类比 jinfo)3.6 通过 jad 来反编译 …...
mac电脑快捷指令实现拼图
mac访达,搜索输入‘快捷指令’,找到‘快捷指令’, 点击快捷指令,进入快捷指令中心,搜索‘拼图’ ,选中‘照片拼图’, 点击‘添加快捷指令’, 在‘所有快捷键指令’中可以看到添加的快…...
R语言入门笔记2.1
分支、循环与函数(1) 1.if语句 在R语言中,if语句用于根据条件执行不同的代码块。其基本语法如下: if (condition) {# 如果条件为真,执行这里的代码块 } else {# 如果条件为假,执行这里的代码块 } 其中&…...
补题:leetcode第382场周赛 3022. 给定操作次数内使剩余元素的或值最小
3022. 给定操作次数内使剩余元素的或值最小 - 力扣(LeetCode) 拆位 n个数进行或运算的结果最小,每次操作可以对相邻的两个数进行与运算,至多进行k次操作 n个数进行或运算,可以对每个数进行拆解,拆解成最小…...
创建型模式-单例模式:定义、实现及应用
目录 一、模式定义二、针对问题1.解决的问题2.解决方案3.举个例子4.设计模式适合场景5.实现方式6.优缺点7.与其他模式的关系 三、代码实现 一、模式定义 单例模式(Singleton Pattern)是一种创建型模式,用于限制某个类只能创建一个对象。它提…...
Prime(VulnHub)
Prime 文章目录 Prime1、nmap2、web渗透随便看看首页隐写查看目录爆破gobusterferoxbusterdirsearchdirb whatwebsearchsploit WordPress 5.2.2/dev/secret.txtFuzz_For_Webwfuzzimage.phpindex.php location.txtsecrettier360文件包含漏洞包含出password.txt尝试ssh登入尝试登…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
