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”是一个自动推理和决策引擎。它接受用户输入/查询,并为执行该查询做出内部决策,以便返回正确的结果。关键的代理组件可以包括但不限于: 把复杂的问题分解成小问题选择要使用的外部工具+调用工具的参数计划一系列的任务将以前完成的任务存储在内存模块中…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...

