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,vue,springcloudalibaba视频,有兴趣可以看看 <!-- springboot,springboot整合redis,整合rocketmq视频: --> https://www.bilibili.com/video/BV1nkmRYSErk/?vd_source14d27ec13a473…...
QtCreator UI界面 菜单栏无法输入中文
如下图红色所示的区域,直接输入是无法输入中文的: 解决方法:在右边的属性值里输入即可 也可以参考这位同学的解决方法:友情链接...
java switch及其新特性
switch是什么 在Java中,switch语句是一种多分支选择结构,它允许程序根据一个表达式的值从多个代码块中选择执行哪一个。switch语句通常比多个if-else语句更清晰、更易读。 Java switch语句的基本语法: switch (expression) {case value1:/…...
E卷-货币单位换算(100分)
货币单位换算 问题描述 在一个多国货币记账本中,记录了若干条不同货币的金额。现在需要将这些金额全部转换成人民币分(fen),并进行汇总。每条记录可能包含单独的元、单独的分,或者元与分的组合。转换时,需要考虑不同货币之间的汇率关系。 要求将这些货币全部换算成人民…...
什么是MMD Maximum Mean Discrepancy 最大均值差异?
9多次在迁移学习看到了,居然还是Bernhard Schlkopf大佬的论文,仔细看看。 一.什么是MMD? 1. MMD要做什么? 判断两个样本(族)是不是来自于同一分布 2.怎么做?(直观上)…...
沐风老师3DMAX摄相机阵列插件使用方法
3DMAX摄相机阵列插件,从网格对象或样条线的顶点法线快速创建摄相机阵列。该插件从网格的顶点或样条线的节点获取每个摄影机的位置和方向。 3DMAX摄相机阵列插件支持目前3dMax主流的物理相机、标准相机、VRay物理相机。 【版本要求】 3dMax 2015及更高版本 【安装方…...
Java Web 开发学习中:过滤器与 Ajax 异步请求
一、过滤器 Filter: 过滤器的概念与用途 在一个庞大的 Web 应用中,有许多资源需要受到保护或进行特定的预处理。过滤器就像是一位智能的守卫,站在资源的入口处,根据预先设定的规则,决定哪些请求可以顺利访问资源&…...
数据结构 (36)各种排序方法的综合比较
一、常见排序方法分类 插入排序类 直接插入排序:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。希尔排序:是插入排序的一种改进版本,先将整个待排序的记录序列分割成为…...
使用vue搭建不需要打包的前端项目
需求详情:用户不要项目进行打包,开发还是选用vue2,且需要便于上手 项目目录 >api 存放api.js,主要是前端用到的接口 >css >>>fonts 存放页面需要的字体文件 >>>1.css 存放所有css文件 >data 存放echarts…...
发布订阅者=>fiber=>虚拟dom
文章目录 vue的响应式原理-发布订阅者模式vue3 响应式原理及优化fiberfiber 与 虚拟dom vue的响应式原理-发布订阅者模式 Vue响应式原理概述 Vue.js的响应式原理是其核心特性之一。它使得当数据发生变化时,与之绑定的DOM元素能够自动更新。其主要基于数据劫持和发布…...
Python-计算机中的码制以及基础运算符(用于分析内存)
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化 python基础2-码制 计算机中的码制原码(True Form)反码(Ones Complement)…...
yum 离线软件安装
适用范围 支持YUM软件管理的操作系统: 银河麒麟 服务器操作系统V10统信服务器操作系统V20CentOS 系列 准备 准备一台可以连接互联网并且与离线安装的操作系统相同版本的操作系统,包括指令集类型相同。 安装下载工具 查询是否已经安装下载工具 yum…...
【C语言】17. 数据在内存中的存储
文章目录 一、整数在内存中的存储二、⼤⼩端字节序和字节序判断1、什么是⼤⼩端?2、为什么有⼤⼩端?3、练习1)练习12)练习23)练习34)练习45) 练习56)练习6 三、浮点数在内存中的存储1、浮点数的…...
二叉树概述
目录 一、二叉树的基本结构 二、二叉树的遍历 1.前序 2.中序 3.后序 4.层序遍历 三.计算二叉树的相关参数 1.计算节点总个数 2.计算叶子节点的个数 3.计算树的高度 4.计算第k层的子树个数 5.查找树中val为x的节点 四.刷题 1.单值二叉树 2.检查两棵树是否相同 3.一…...
【开源免费】基于SpringBoot+Vue.JS图书进销存管理系统(JAVA毕业设计)
博主说明:本文项目编号 T 082 ,文末自助获取源码 \color{red}{T082,文末自助获取源码} T082,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
惠普M126a连接共享打印机故障0x000006ba,系统不支持请求的命令,print spooler重复停止
故障说明:直连惠普M126a打印机正常打印,通过共享连接的报故障。 目前已知有三种故障: 1、0x000006ba报错2、系统不支持请求的命令3、print spooler重复停止(或者,print spooler没有停止依然报故障) 解决方…...
Chainlit集成LlamaIndex实现一个通过用户聊天对话的酒店预定系统
Agent 简介 “Agent”是一个自动推理和决策引擎。它接受用户输入/查询,并为执行该查询做出内部决策,以便返回正确的结果。关键的代理组件可以包括但不限于: 把复杂的问题分解成小问题选择要使用的外部工具+调用工具的参数计划一系列的任务将以前完成的任务存储在内存模块中…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

