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

2024-05-12 00:52

本文主要是介绍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()

这篇关于Pyside6实操笔记(一):系统页面跳转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo