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

PyQt信号槽实现页面的登录与跳转 #页面进一步优化

将登录框中的取消按钮使用信号和槽的机制,关闭界面。

将登录按钮使用信号和槽连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,当前界面关闭,另一个界面展开。如果匹配失败,则输出登录失败,并将密码框和账号框中的内容清空

 pyside转换前

 

Pyside将ui转换为py文件,将项目资源导入后 

 

代码如下:(主执行代码)

import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget,QApplicationfrom login_sea import Ui_Form
from login_succes import Ui_Form2#界面1(按钮)
class MyWidget(Ui_Form,QWidget):def __init__(self):super().__init__()self.setupUi(self)self.pushButton.clicked.connect(btn_def)#界面2
class SecMyWidget(Ui_Form2,QWidget):def __init__(self):super().__init__()self.setupUi(self)def btn_def():name = myWidget.lineEdit_1.text()password = myWidget.lineEdit_2.text()if name=='admin'and password=='123456':myWidget.close()second.show()else:print('输入错误')if __name__ =='__main__':app = QApplication(sys.argv)myWidget=MyWidget()myWidget.setWindowFlag(Qt.WindowType.FramelessWindowHint)myWidget.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)myWidget.show()second=SecMyWidget()second.setWindowFlag(Qt.WindowType.FramelessWindowHint)second.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)#阻塞sys.exit(app.exec())

 剩下两个页面的ui转py代码:

# -*- coding: utf-8 -*-################################################################################
## Form generated from reading UI file 'login_sea.ui'
##
## Created by: Qt User Interface Compiler version 6.8.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QLabel, QLineEdit,QPushButton, QSizePolicy, QWidget)
import res_rc
import sysclass Ui_Form(object):def setupUi(self, Form):if not Form.objectName():Form.setObjectName(u"Form")Form.resize(698, 623)Form.setStyleSheet(u"*{\n"
"	background-color: rgb(255, 255, 255);\n"
"}\n"
"\n"
"QFrame#frameback{		\n"
"	border-image: url(:/Logo/shangHai.jpg);\n"
"	border-radius:5px\n"
"}\n"
"\n"
"\n"
"QLabel#labelback{\n"
"	background-color: rgba(120, 120, 125, 50);\n"
"	border-radius:5px;\n"
"}\n"
"#labelback2{\n"
"	background-color: rgba(70, 70, 75, 120);\n"
"	border-radius:5px;\n"
"}\n"
"#loginlab{\n"
"	background:transparent;\n"
"	\n"
"	color: rgba(255, 255, 255, 200);\n"
"	font: 26pt \"Segoe Print\";\n"
"}\n"
"QLineEdit{\n"
"	background:transparent;\n"
"	border:none;\n"
"	border-bottom:3px solid rgba(255, 255, 255, 200);\n"
"	color: rgba(255, 255, 255, 200);\n"
"	font: 26pt \"Segoe Print\";\n"
"}\n"
"QPushButton{\n"
"	color: rgba(5, 2, 5, 200);\n"
"	font: 26pt \"Segoe Print\";\n"
"	border-radius:5px;\n"
"	background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(244, 191, 0, 255), stop:1 rgba(255, 255, 255, 255));\n"
"}\n"
"QPushButton:hover{\n"
"	color: rgba(5, 2, 5, 200);\n"
"	font: 26pt \"Segoe Print\";\n"
"	b""order-radius:5px;\n"
"	background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(190, 191, 0, 255), stop:1 rgba(190, 255, 255, 255));\n"
"}\n"
"QPushButton:pressed{\n"
"	color: rgba(5, 2, 5, 200);\n"
"	font: 26pt \"Segoe Print\";\n"
"	border-radius:5px;\n"
"	background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(244, 191, 0, 255), stop:1 rgba(255, 255, 255, 255));\n"
"	padding-top:5px;\n"
"	padding-left:5px;\n"
"}\n"
"\n"
"\n"
"\n"
"")self.frameback = QFrame(Form)self.frameback.setObjectName(u"frameback")self.frameback.setGeometry(QRect(90, 100, 531, 401))self.frameback.setFrameShape(QFrame.StyledPanel)self.frameback.setFrameShadow(QFrame.Raised)self.labelback = QLabel(self.frameback)self.labelback.setObjectName(u"labelback")self.labelback.setGeometry(QRect(0, 0, 531, 401))self.labelback2 = QLabel(self.frameback)self.labelback2.setObjectName(u"labelback2")self.labelback2.setGeometry(QRect(50, 80, 431, 281))self.loginlab = QLabel(self.frameback)self.loginlab.setObjectName(u"loginlab")self.loginlab.setGeometry(QRect(190, 100, 211, 71))self.lineEdit_1 = QLineEdit(self.frameback)self.lineEdit_1.setObjectName(u"lineEdit_1")self.lineEdit_1.setGeometry(QRect(150, 190, 231, 31))self.lineEdit_1.setMaxLength(32769)self.lineEdit_2 = QLineEdit(self.frameback)self.lineEdit_2.setObjectName(u"lineEdit_2")self.lineEdit_2.setGeometry(QRect(150, 240, 231, 31))self.lineEdit_2.setEchoMode(QLineEdit.Password)self.pushButton = QPushButton(self.frameback)self.pushButton.setObjectName(u"pushButton")self.pushButton.setGeometry(QRect(150, 300, 241, 41))self.retranslateUi(Form)QMetaObject.connectSlotsByName(Form)# setupUidef retranslateUi(self, Form):Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))self.labelback.setText("")self.labelback2.setText("")self.loginlab.setText(QCoreApplication.translate("Form", u"welcome", None))self.lineEdit_1.setPlaceholderText(QCoreApplication.translate("Form", u"e-mail", None))self.lineEdit_2.setPlaceholderText(QCoreApplication.translate("Form", u"passwd", None))self.pushButton.setText(QCoreApplication.translate("Form", u"log in", None))# retranslateUiif __name__ == '__main__':#实例化程序,有且仅有一个应用程序对象app = QApplication(sys.argv)w=QWidget()Ui_Form().setupUi(w)w.setWindowFlag(Qt.WindowType.FramelessWindowHint)w.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)w.show()#阻塞sys.exit(app.exec())# -*- coding: utf-8 -*-################################################################################
## Form generated from reading UI file 'login_succes.ui'
##
## Created by: Qt User Interface Compiler version 6.8.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QLabel, QSizePolicy, QWidget)
import res_rc
import sysclass Ui_Form2(object):def setupUi(self, Form):if not Form.objectName():Form.setObjectName(u"Form")Form.resize(709, 695)Form.setStyleSheet(u"QLabel#label1{\n"
"	border-radius:3px;\n"
"	border-image: url(:/Logo/wanXia.jpg);\n"
"}\n"
"#label2{\n"
"	\n"
"	font: 48pt \"\u5fae\u8f6f\u96c5\u9ed1\";\n"
"	\n"
"	color: rgb(85, 0, 255);\n"
"}")self.label1 = QLabel(Form)self.label1.setObjectName(u"label1")self.label1.setGeometry(QRect(70, 100, 551, 431))self.label2 = QLabel(Form)self.label2.setObjectName(u"label2")self.label2.setGeometry(QRect(100, 230, 341, 71))self.retranslateUi(Form)QMetaObject.connectSlotsByName(Form)# setupUidef retranslateUi(self, Form):Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))self.label1.setText("")self.label2.setText(QCoreApplication.translate("Form", u"\u767b\u9646\u6210\u529f\uff01", None))# retranslateUiif __name__ == '__main__':#实例化程序,有且仅有一个应用程序对象app = QApplication(sys.argv)w=QWidget()Ui_Form2().setupUi(w)w.setWindowFlag(Qt.WindowType.FramelessWindowHint)w.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)w.show()#阻塞sys.exit(app.exec())

本期思维导图: 

 

相关文章:

PyQt信号槽实现页面的登录与跳转 #页面进一步优化

将登录框中的取消按钮使用信号和槽的机制,关闭界面。 将登录按钮使用信号和槽连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,当前界面关…...

谈谈web3

全面解析 Web3:未来互联网的革命性进程 引言:互联网进化的三部曲 互联网的发展经历了三个重要阶段,每一个阶段都深刻地改变了我们的生活方式: Web1(1990-2005):静态互联网时代,人…...

正则表达式实战例子

正则表达式实战例子 1. 验证电子邮件地址 定义一个合理的电子邮件格式,并检查给定的字符串是否符合这个模式。 import redef is_valid_email(email):# 定义电子邮件格式的正则表达式pattern r^[a-zA-Z0-9_.-][a-zA-Z0-9-]\.[a-zA-Z0-9-.]$return bool(re.match(…...

Hadoop不同版本的区别

免费springboot&#xff0c;vue&#xff0c;springcloudalibaba视频&#xff0c;有兴趣可以看看 <!-- springboot&#xff0c;springboot整合redis&#xff0c;整合rocketmq视频&#xff1a; --> https://www.bilibili.com/video/BV1nkmRYSErk/?vd_source14d27ec13a473…...

QtCreator UI界面 菜单栏无法输入中文

如下图红色所示的区域&#xff0c;直接输入是无法输入中文的&#xff1a; 解决方法&#xff1a;在右边的属性值里输入即可 也可以参考这位同学的解决方法&#xff1a;友情链接...

java switch及其新特性

switch是什么 在Java中&#xff0c;switch语句是一种多分支选择结构&#xff0c;它允许程序根据一个表达式的值从多个代码块中选择执行哪一个。switch语句通常比多个if-else语句更清晰、更易读。 Java switch语句的基本语法&#xff1a; switch (expression) {case value1:/…...

E卷-货币单位换算(100分)

货币单位换算 问题描述 在一个多国货币记账本中,记录了若干条不同货币的金额。现在需要将这些金额全部转换成人民币分(fen),并进行汇总。每条记录可能包含单独的元、单独的分,或者元与分的组合。转换时,需要考虑不同货币之间的汇率关系。 要求将这些货币全部换算成人民…...

什么是MMD Maximum Mean Discrepancy 最大均值差异?

9多次在迁移学习看到了&#xff0c;居然还是Bernhard Schlkopf大佬的论文&#xff0c;仔细看看。 一.什么是MMD&#xff1f; 1. MMD要做什么&#xff1f; 判断两个样本&#xff08;族&#xff09;是不是来自于同一分布 2.怎么做&#xff1f;&#xff08;直观上&#xff09;…...

沐风老师3DMAX摄相机阵列插件使用方法

3DMAX摄相机阵列插件&#xff0c;从网格对象或样条线的顶点法线快速创建摄相机阵列。该插件从网格的顶点或样条线的节点获取每个摄影机的位置和方向。 3DMAX摄相机阵列插件支持目前3dMax主流的物理相机、标准相机、VRay物理相机。 【版本要求】 3dMax 2015及更高版本 【安装方…...

Java Web 开发学习中:过滤器与 Ajax 异步请求

一、过滤器 Filter&#xff1a; 过滤器的概念与用途 在一个庞大的 Web 应用中&#xff0c;有许多资源需要受到保护或进行特定的预处理。过滤器就像是一位智能的守卫&#xff0c;站在资源的入口处&#xff0c;根据预先设定的规则&#xff0c;决定哪些请求可以顺利访问资源&…...

数据结构 (36)各种排序方法的综合比较

一、常见排序方法分类 插入排序类 直接插入排序&#xff1a;通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。希尔排序&#xff1a;是插入排序的一种改进版本&#xff0c;先将整个待排序的记录序列分割成为…...

使用vue搭建不需要打包的前端项目

需求详情&#xff1a;用户不要项目进行打包&#xff0c;开发还是选用vue2,且需要便于上手 项目目录 >api 存放api.js&#xff0c;主要是前端用到的接口 >css >>>fonts 存放页面需要的字体文件 >>>1.css 存放所有css文件 >data 存放echarts…...

发布订阅者=>fiber=>虚拟dom

文章目录 vue的响应式原理-发布订阅者模式vue3 响应式原理及优化fiberfiber 与 虚拟dom vue的响应式原理-发布订阅者模式 Vue响应式原理概述 Vue.js的响应式原理是其核心特性之一。它使得当数据发生变化时&#xff0c;与之绑定的DOM元素能够自动更新。其主要基于数据劫持和发布…...

Python-计算机中的码制以及基础运算符(用于分析内存)

记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 python基础2-码制 计算机中的码制原码&#xff08;True Form&#xff09;反码&#xff08;Ones Complement&#xff09…...

yum 离线软件安装

适用范围 支持YUM软件管理的操作系统&#xff1a; 银河麒麟 服务器操作系统V10统信服务器操作系统V20CentOS 系列 准备 准备一台可以连接互联网并且与离线安装的操作系统相同版本的操作系统&#xff0c;包括指令集类型相同。 安装下载工具 查询是否已经安装下载工具 yum…...

【C语言】17. 数据在内存中的存储

文章目录 一、整数在内存中的存储二、⼤⼩端字节序和字节序判断1、什么是⼤⼩端&#xff1f;2、为什么有⼤⼩端?3、练习1&#xff09;练习12&#xff09;练习23&#xff09;练习34&#xff09;练习45&#xff09; 练习56&#xff09;练习6 三、浮点数在内存中的存储1、浮点数的…...

二叉树概述

目录 一、二叉树的基本结构 二、二叉树的遍历 1.前序 2.中序 3.后序 4.层序遍历 三.计算二叉树的相关参数 1.计算节点总个数 2.计算叶子节点的个数 3.计算树的高度 4.计算第k层的子树个数 5.查找树中val为x的节点 四.刷题 1.单值二叉树 2.检查两棵树是否相同 3.一…...

【开源免费】基于SpringBoot+Vue.JS图书进销存管理系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 082 &#xff0c;文末自助获取源码 \color{red}{T082&#xff0c;文末自助获取源码} T082&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

惠普M126a连接共享打印机故障0x000006ba,系统不支持请求的命令,print spooler重复停止

故障说明&#xff1a;直连惠普M126a打印机正常打印&#xff0c;通过共享连接的报故障。 目前已知有三种故障&#xff1a; 1、0x000006ba报错2、系统不支持请求的命令3、print spooler重复停止&#xff08;或者&#xff0c;print spooler没有停止依然报故障&#xff09; 解决方…...

Chainlit集成LlamaIndex实现一个通过用户聊天对话的酒店预定系统

Agent 简介 “Agent”是一个自动推理和决策引擎。它接受用户输入/查询,并为执行该查询做出内部决策,以便返回正确的结果。关键的代理组件可以包括但不限于: 把复杂的问题分解成小问题选择要使用的外部工具+调用工具的参数计划一系列的任务将以前完成的任务存储在内存模块中…...

【Windows】终止进程、杀掉进程、结束进程

使用资源监视器在任务管理器中点击"性能"选项卡点击"打开资源监视器"切换到"CPU"选项卡在"关联的句柄"搜索框中输入 ui_demo.exe找到对应的进程后&#xff0c;右键点击并选择"结束进程"...

Qwen3.5-9B效果展示:中英混合输入+代码注释生成高质量输出

Qwen3.5-9B效果展示&#xff1a;中英混合输入代码注释生成高质量输出 1. 模型核心能力概览 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在多个领域展现出卓越的能力。这个模型特别适合处理复杂的技术任务&#xff0c;尤其是那些需要同时理解自然语言和编程语言的…...

算法审判日:用Git记录定程序员罪孽

一、版本控制的“审判台”在软件质量保障体系中&#xff0c;Git早已超越单纯的版本管理工具&#xff0c;演变为代码行为的“司法档案库”。每一次git commit都是程序员在数字法庭上的宣誓证词&#xff0c;而git blame则成为测试人员追溯缺陷根源的刑侦工具。罪证链条的三重维度…...

实测,用 AI (Stitch + Codex) 给产品做个官网

作为一个写了 10 年代码的老程序员&#xff0c;这几年听得最多的一句话就是&#xff1a; “AI 已经可以写代码、做设计了。” 但说实话&#xff0c;我一直是半信半疑的状态&#xff08;停留在 Cursor 刚出来的那会儿&#xff09;。 于是&#xff0c;今天我决定不看别人说&…...

Java记录模式安全边界警告:3类不可序列化场景、2种反编译泄露风险(Oracle安全白皮书节选)

第一章&#xff1a;Java记录模式安全边界警告&#xff1a;3类不可序列化场景、2种反编译泄露风险&#xff08;Oracle安全白皮书节选&#xff09;不可序列化的三类典型场景 Java记录&#xff08;Record&#xff09;类型在设计上强调不可变性与透明性&#xff0c;但其默认序列化行…...

强化学习实战:用Python手把手实现值迭代与策略迭代算法(附完整代码)

强化学习实战&#xff1a;用Python手把手实现值迭代与策略迭代算法&#xff08;附完整代码&#xff09; 强化学习作为机器学习的重要分支&#xff0c;近年来在游戏AI、自动驾驶、机器人控制等领域展现出惊人潜力。对于初学者而言&#xff0c;理解算法原理固然重要&#xff0c;但…...

手把手教你用Cloudflare免费RPC节点开发以太坊应用

从零构建以太坊DApp&#xff1a;Cloudflare免费RPC节点实战指南 当你在深夜调试智能合约时&#xff0c;是否曾被突然失效的RPC节点打断思路&#xff1f;作为以太坊开发者&#xff0c;稳定可靠的节点连接是开发流程中最基础却最容易被忽视的一环。Cloudflare提供的免费以太坊RPC…...

Optick与虚幻引擎集成教程:打造专业级游戏性能分析环境

Optick与虚幻引擎集成教程&#xff1a;打造专业级游戏性能分析环境 【免费下载链接】optick C Profiler For Games 项目地址: https://gitcode.com/gh_mirrors/op/optick 作为游戏开发者&#xff0c;你是否曾经为性能瓶颈而苦恼&#xff1f;想要深入了解游戏运行时的性能…...

高光谱分类别只盯着精度?聊聊Salinas数据集实战中的那些‘隐形’优化点

高光谱分类实战&#xff1a;超越精度的Salinas数据集深度优化指南 当我们在Salinas数据集上实现98%的分类准确率时&#xff0c;是否意味着模型已经完美&#xff1f;作为深耕遥感领域多年的技术顾问&#xff0c;我必须指出&#xff1a;高光谱图像分类的工程实践远比表面指标复杂…...

OpCore-Simplify:黑苹果配置的自动化革命——从复杂调试到一键配置的智能解决方案

OpCore-Simplify&#xff1a;黑苹果配置的自动化革命——从复杂调试到一键配置的智能解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 传统黑苹…...