Pyside6实操笔记(一):系统页面跳转

文章目录

  • 背景
  • 代码实现

背景

假设我们有个登录界面和注册界面,如果我们想要从登录界面跳转到注册界面注册用户名和密码,可以采取本篇博客的方式来实现。

代码实现

关键代码

  • 1.创建一个空的窗口
class shareInfo:mainwin = None
    1. 跳转代码
#编写跳转注册界面逻辑
shareInfo.mainwin = RegistWindow()
shareInfo.mainwin.show()
#同时关闭登录界面
self.close()

完整代码


import sys, time
from PySide6.QtCore import Qt, QTranslator, QLocale
from PySide6.QtGui import QIcon, QPixmap
from PySide6.QtWidgets import QApplication
from qframelesswindow import FramelessWindow, StandardTitleBar, AcrylicWindow
from qfluentwidgets import setThemeColor, FluentTranslator, setTheme, Theme, SplitTitleBar
from my_ui.demo.login.Ui_LoginWindow import Ui_Form
from my_ui.demo.login.Ui_RegistWindow import Ui_Form as RUi_Form
from qfluentwidgets import InfoBar, InfoBarPosition
from main_entrence import main_sys_run, MainWindow
from utils.file_tools import get_user_info, write_user_info, get_passwordclass shareInfo:mainwin = Noneclass LoginWindow(AcrylicWindow, Ui_Form):def __init__(self):super().__init__()self.setupUi(self)# setTheme(Theme.DARK)self.xlsx_path = "files/user.xlsx"setThemeColor('#28afe9')self.setTitleBar(SplitTitleBar(self))self.titleBar.raise_()self.label.setScaledContents(False)self.setWindowTitle('自动标注系统登录界面')self.setWindowIcon(QIcon(":/images/logo.jpg"))self.resize(1000, 650)self.windowEffect.setMicaEffect(self.winId(), isDarkMode=False)self.titleBar.titleLabel.setStyleSheet("""QLabel{background: transparent;font: 13px 'Segoe UI';padding: 0 4px;color: white}""")desktop = QApplication.screens()[0].availableGeometry()w, h = desktop.width(), desktop.height()self.move(w//2 - self.width()//2, h//2 - self.height()//2)self.loginButton.clicked.connect(self.valid_user)self.findButton_.clicked.connect(self.regist_user)self.loginButton.setStyleSheet("QPushButton:hover { background-color: rgb(135,206,250); color: rgb(255,255,255)};")def regist_user(self):shareInfo.mainwin = RegistWindow()shareInfo.mainwin.show()self.close()def valid_user(self):df, USERS, PASSWORDS = get_user_info(self.xlsx_path)username = self.user_button.text()password = self.pw_button.text()if username in USERS:if str(password) == str(get_password(df, username)):InfoBar.success(title='恭喜登录成功',content="正在跳转系统界面!",orient=Qt.Horizontal,isClosable=True,position=InfoBarPosition.BOTTOM_RIGHT,duration=1000)shareInfo.mainwin = MainWindow()shareInfo.mainwin.show()self.close()else:InfoBar.error(title='用户名和密码验证失败!',content="",orient=Qt.Horizontal,isClosable=True,position=InfoBarPosition.BOTTOM_RIGHT,duration=-1)else:InfoBar.error(title='此用户未注册!',content="",orient=Qt.Horizontal,isClosable=True,position=InfoBarPosition.BOTTOM_RIGHT,duration=-1)def resizeEvent(self, e):super().resizeEvent(e)pixmap = QPixmap(":/images/background.jpg").scaled(self.label.size(), Qt.KeepAspectRatioByExpanding, Qt.SmoothTransformation)self.label.setPixmap(pixmap)class RegistWindow(AcrylicWindow, RUi_Form):def __init__(self):super().__init__()self.setupUi(self)# setTheme(Theme.DARK)self.xlsx_path = "files/user.xlsx"setThemeColor('#28afe9')self.setTitleBar(SplitTitleBar(self))self.titleBar.raise_()self.label.setScaledContents(False)self.setWindowTitle('自动标注系统注册界面')self.setWindowIcon(QIcon(":/images/logo.jpg"))self.resize(1000, 650)self.windowEffect.setMicaEffect(self.winId(), isDarkMode=False)self.titleBar.titleLabel.setStyleSheet("""QLabel{background: transparent;font: 13px 'Segoe UI';padding: 0 4px;color: white}""")desktop = QApplication.screens()[0].availableGeometry()w, h = desktop.width(), desktop.height()self.move(w//2 - self.width()//2, h//2 - self.height()//2)self.confirmButton.clicked.connect(self.valid_user)self.confirmButton.setStyleSheet("QPushButton:hover { background-color: rgb(135,206,250); color: rgb(255,255,255)};")def valid_user(self):USERS, PASSWORDS = get_user_info(self.xlsx_path)username = self.user_button.text()password = self.pw_button.text()c_password = self.pw1_button.text()print(username, password, c_password)#如果用户名为空,则显示报错信息if username == "":InfoBar.warning(title='提示',content="账号名不许为空!",orient=Qt.Horizontal,isClosable=True,position=InfoBarPosition.BOTTOM_RIGHT,duration=-1)else:#若用户名存在,报错if username in USERS:InfoBar.warning(title='提示',content="用户已经存在!",orient=Qt.Horizontal,isClosable=True,position=InfoBarPosition.BOTTOM_RIGHT,duration=-1)elif password != c_password:InfoBar.warning(title='提示',content="密码不一致,请重新输入!",orient=Qt.Horizontal,isClosable=True,position=InfoBarPosition.BOTTOM_RIGHT,duration=-1)else:write_user_info(self.xlsx_path, username, password)################################################shareInfo.mainwin = LoginWindow()shareInfo.mainwin.show()self.close()def resizeEvent(self, e):super().resizeEvent(e)# ":/images/background.jpg"pixmap = QPixmap(":/images/background.jpg").scaled(self.label.size(), Qt.KeepAspectRatioByExpanding, Qt.SmoothTransformation)self.label.setPixmap(pixmap)if __name__ == '__main__':app = QApplication(sys.argv)translator = FluentTranslator(QLocale())app.installTranslator(translator)w = LoginWindow()w.show()app.exec()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12127.shtml

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

相关文章

ShellCode详解三

直接进入正题。 在完成正式的shellcode代码导出之前,我们先手动的对代码进行导出,以使各位同学更加了解其原理。 手动注入shellcode 1、我们利用DLE工具找到上一节中我们生成的PE文件的代码段位置 上述图片就是我们的代码段位置 2、利用WinHex工具我…

IP证书签发申请

IP证书签发申请 IP证书的全称是IP SSL证书,其主要的作用是为IP实现https访问,且IP SSL证书可以完美的解决企业对于IP地址实现https加密需求。 这种类型的证书特别适合于那些没有域名只有公网IP或者不方便使用域名的企业或个人。证书允许通过特定的IP地…

Databend 开源周报第 144 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 了解 Databend …

在线制作动态图片怎么操作?一个在线制作gif的方法分享

图片在大家的生活工作中都会接触到,当我们想要让自己的图片更生动吸引眼球这时候就可以将几张图片制作成gif动态图。不需要下载软件,小白就可以在线操作,通过使用在线制作动态图片(https://www.gif5.net/)工具-GIF5工具…

笔记:准备测试手机app的自动化操作及数据采集

其实,我主要是想采集某团的店铺数据的,前段时间看他们在某音上好像好牛的样子。 经过多方搜索。我才知识以下知识。所以说,我是从零开始。 工具很多。 2、Selenium(自动化测试) 3、Appium(自动化测试) 4、Cypress(自动化测试) 5、Robot Framework(自动化测试) 6、A…

服务器被后台爆破怎么处理

服务器后台遭受密码爆破攻击是网络安全中常见的威胁之一,这种攻击通过不断尝试不同的用户名和密码组合来破解系统登录凭证,一旦成功,攻击者便能非法访问系统资源。 本文将介绍如何识别此类攻击,并采取有效措施进行防御&#xff0c…

ICode国际青少年编程竞赛- Python-5级训练场-函数练习2

ICode国际青少年编程竞赛- Python-5级训练场-函数练习2 1、 def get_item(a):Spaceship.step(1)Dev.step(a)Dev.turnLeft()Dev.step(1)Spaceship.step(1)Dev.turnRight()Dev.step(-a)Spaceship.step(1) get_item(3) get_item(2) get_item(3) get_item(1) get_item(5)2、 de…

4万字一文带你看懂车载摄像头技术、市场、发展前景

1、小孔成像 在战国初期,我国学者墨子(公元前468年-公元前376年)和弟子们完成了世界上第一个小孔成像的实验,并记录在《墨经》中:“景到,在午有端,与景长。说在端。”“景。光之人,煦…

荆州科技局副局长乔梁莅临湖北点赋网络科技公司参观调研

近日,荆州科技局副局长乔梁,莅临湖北点赋网络科技公司进行参观调研。点赋科技总经理崔梦娇亲自陪同,向副局长介绍了公司的D咖智能饮品机器人经营状况和研发进展情况。 在参观过程中,副局长乔梁对点赋科技的创新能力和技术成果给予…

python进阶的学习路径

学习Python进阶需要掌握以下几个方面的知识: 1. 数据结构和算法:学习常用的数据结构,如数组、链表、栈、队列、树和图,并学习相应的算法,如查找、排序和遍历算法。可以使用Python内置的数据结构和算法,也可…

太阳能光伏发电应用过程中会用到哪些光伏组件?

随着全球对可再生能源的需求日益增加,太阳能光伏发电已成为一种重要的清洁能源解决方案。在太阳能光伏发电系统的运行过程中,光伏组件作为系统的核心部分,起着至关重要的作用。本文将详细介绍太阳能光伏发电应用过程中会使用到的关键光伏组件…

python输出希腊字母

有时候在绘制一些函数图像时,需要坐标轴和图例显示希腊字母 plt.xlabel(r’ ϵ \epsilon ϵ’)

Docker容器中的SSH免密登录

简介:在日常的开发和测试环境中经常需要创建和管理Docker容器。有时,出于调试或管理的目的,可能需要SSH到容器内部。本文将介绍如何创建一个Docker容器,它在启动时自动运行SSH服务,并支持免密登录。 构建支持SSH的Doc…

(八)SQL基础知识练习题(选择题)(下)#CDA学习打卡

本文整理了SQL基础知识相关的练习题,共133道,可作为CDA一级的补充习题,也适用于刚入门初级SQL想巩固基础的同学。来源:如荷学数据科学题库(技术专项-SQL)。暂时按照原题库顺序present,如有需要之…

数字驱动绩效管理创新:提升效率的新路径

在当今快速发展的商业环境中,绩效管理已成为企业持续发展和员工个人成长的核心要素。传统的绩效管理方式往往依赖于人工操作和定性评估,但随着科技的进步和数字化浪潮的推进,数字驱动绩效管理正逐渐成为提升效率的新路径。本文将探讨数字驱动…

Matlab如何批量导出多张高质量论文插图?科研效率UpUp第9期

上一期文章中,分享了Matlab导出高质量论文插图的方法(Matlab如何导出高质量论文插图?科研效率UpUp第8期)。 进一步,假如我们想要批量导出多张高质量无变形论文插图,该如何操作呢? ​也很简单&…

Java虚拟机栈

介绍 Java虚拟机栈(Java Virtual Machine Stack,简称JVM Stack)是Java虚拟机的一个组成部分,它用于存储方法的局部变量、操作数栈以及动态链接和方法出口信息。JVM在执行Java程序时,每个线程都会有一个私有的JVM栈&…

USB2514BI-AEZG-TR USB2.0 接口转换集成电路 QFN-36参数指南

USB2514BI-AEZG-TR USB接口集成电路 USB2514BI-AEZG-TR 是一款USB接口集成电路。工作电压为3.3V,采用36-Pin VQFN封装。它支持USB 2.0协议,最大操作频率为24 MHz,最小操作供应电压为3V,最大输出电流为150mA。该器件适用于需要USB集…

VALSE 2024合合信息 | 文档解析与向量化技术加速多模态大模型训练与应用

第十四届视觉与学习青年学者研讨会(VALSE 2024)近期在重庆悦来国际会议中心圆满举行,由中国人工智能学会(CAAI)、中国图象图形学会(CSIG)、中国民族贸易促进会主办,重庆邮电大学承办…

AWS ECS On Fargate 监控可观测最佳实践

概述 Amazon ECS on Fargate 为用户提供了简单、高效且可靠的容器化解决方案,使用户能够专注于应用程序开发和运行,而无需担心基础设施管理的复杂性。与其同时,用户需要实时了解在该环境中应用程序运行的性能、可用性、健康状况和资源使用情…