【pyqt5学习】——登录界面跳转到主界面,登录界面关闭的情况下从主界面跳转回登录界面

目录

一、登录界面长下面这样,由qt designer设计 login.py

二、登录界面 逻辑代码loginLogic.py

三、主界面comsumeType.py

 四、主界面逻辑代码comsumeTypeLogic.py

五、登录界面跳转至主界面

六、主界面回到登录界面


一、登录界面长下面这样,由qt designer设计 login.py

 

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'login.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(416, 271)MainWindow.setMinimumSize(QtCore.QSize(416, 271))MainWindow.setMaximumSize(QtCore.QSize(416, 271))self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(70, 40, 291, 31))font = QtGui.QFont()font.setPointSize(17)font.setBold(True)font.setWeight(75)self.label.setFont(font)self.label.setAlignment(QtCore.Qt.AlignCenter)self.label.setObjectName("label")self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(80, 110, 101, 21))font = QtGui.QFont()font.setPointSize(11)self.label_2.setFont(font)self.label_2.setObjectName("label_2")self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(80, 150, 61, 21))font = QtGui.QFont()font.setPointSize(11)self.label_3.setFont(font)self.label_3.setObjectName("label_3")self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit.setGeometry(QtCore.QRect(160, 110, 171, 20))self.lineEdit.setObjectName("lineEdit")self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_2.setGeometry(QtCore.QRect(160, 150, 171, 20))self.lineEdit_2.setObjectName("lineEdit_2")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(100, 200, 81, 31))font = QtGui.QFont()font.setPointSize(11)self.pushButton.setFont(font)self.pushButton.setObjectName("pushButton")self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_2.setGeometry(QtCore.QRect(240, 200, 81, 31))font = QtGui.QFont()font.setPointSize(11)self.pushButton_2.setFont(font)self.pushButton_2.setObjectName("pushButton_2")MainWindow.setCentralWidget(self.centralwidget)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "欢迎"))self.label.setText(_translate("MainWindow", "管理系统"))self.label_2.setText(_translate("MainWindow", "用户名:"))self.label_3.setText(_translate("MainWindow", "密  码:"))self.pushButton.setText(_translate("MainWindow", "登录"))self.pushButton_2.setText(_translate("MainWindow", "注册"))if __name__ == "__main__":import sysapp = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

二、登录界面 逻辑代码loginLogic.py

from login import Ui_MainWindow as loginUI
from comsumeTypeLogic import comsumeTypeLogic as CSTLogicfrom PyQt5.QtWidgets import QMessageBox,QMainWindow,QApplication
from PyQt5.QtGui import QIcon
from PyQt5 import QtCoreimport sysclass loginLogic(QMainWindow,loginUI):def __init__(self):super(loginLogic, self).__init__()self.setupUi(self)self.setWindowIcon(QIcon("datas/icon.ico"))self.CSTLogic = CSTLogic()self.run()# 按钮绑定事件def run(self):# 登录self.pushButton.clicked.connect(self.login_)# 注册self.pushButton_2.clicked.connect(self.register_)# 登录事件def login_(self):pass# 注册事件def register_(self):pass# 重新启动界面def reshow(self):self.show()# 运行界面循环
def main_():app = QApplication(sys.argv)login_ = loginLogic()login_.show()sys.exit(app.exec_())if __name__ == '__main__':main_()

三、主界面comsumeType.py

 四、主界面逻辑代码comsumeTypeLogic.py

from comsumeType import Ui_MainWindow as CSTUIfrom PyQt5.QtWidgets import QMessageBox,QMainWindow,QApplication
from PyQt5.QtGui import QIcon
from PyQt5 import QtCoreimport sysclass comsumeTypeLogic(QMainWindow,CSTUI):returnLoginSignal = QtCore.pyqtSignal()def __init__(self):super(comsumeTypeLogic, self).__init__()self.setupUi(self)self.setWindowIcon(QIcon("datas/icon.ico"))self.run()# 按钮绑定事件def run(self):# 退出系统self.pushButton_10.clicked.connect(self.exitSystem)# 返回登录界面self.pushButton_11.clicked.connect(self.returnLogin)# 退出系统def exitSystem(self):sys.exit()# 返回登录界面def returnLogin(self):self.close()self.returnLoginSignal.emit()if __name__ == '__main__':app =QApplication(sys.argv)CSTLogic = comsumeTypeLogic()CSTLogic.show()sys.exit(app.exec_())

五、登录界面跳转至主界面

1、在登录界面逻辑代码loginLogic.py中将主界面的逻辑代码实例化

self.CSTLogic = CSTLogic()

2、登录界面逻辑代码loginLogic.py中需要跳转的位置插入以下代码

跳转到主界面同时关闭登录界面

			self.CSTLogic.show()# 登录界面关闭self.close()

六、主界面回到登录界面

1、在主界面逻辑代码comsumeTypeLogic.py中,添加信号

returnLoginSignal = QtCore.pyqtSignal()

2、在主界面逻辑代码comsumeTypeLogic.py中需要跳转到登录界面的地方触发信号并发射

	# 返回登录界面def returnLogin(self):self.close()self.returnLoginSignal.emit()

3、在登录界面逻辑代码loginLogic.py中实例化主界面逻辑代码,且将信号绑定槽函数

self.CSTLogic.show()
self.CSTLogic.returnLoginSignal.connect(self.reshow)

4、在登录界面逻辑代码loginLogic.py中编写槽函数代码

	def reshow(self):self.show()

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

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

相关文章

WPF ClickOnce应用程序IIS部署发布攻略

WPF程序非常适合公司内网使用,唯一缺点就是客户端要安装.net框架4.0。优势也很明显,在客户端运行的是一个WinForm程序,自动下载,可以充分利用客户机的性能,而且是以当前的Windows用户权限运行,避免了权限带…

文件传输协议

文件传输协议(英文:File Transfer Protocol,简称为FTP)是用于在网络上进行文件传输的一套标准协议。它属于网络传输协议的应用层。 FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理&#xff…

【python学习】——为exe软件创建快捷方式;实现软件自启动

目录 1、为exe创建快捷方式 2、实现软件自启动 3、完整代码 4、结果展示 1、为exe创建快捷方式 利用winshell库的CreateShortCut函数进行创建 【python学习】——获取桌面路径,获取系统盘符,获取电脑用户名,获取软件自启动存放目录_有情怀…

vxWorks下常用的几种延时方法

在应用编程的时候,通常会碰到需要一个任务在特定的延时之后执行一个指定的动作,如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等。这就需要利用定时器机制来计量特定长度的时间段。 vxWorks作为实时嵌入式系统&#xff0…

【pyqt5学习】——窗口最小化至托盘、取消任务栏图标

目录 1、最小化至托盘 1)重写系统托盘类,设置托盘图标等属性 2)将具体的窗口放入托盘 2、取消任务栏界面图标 3、问题汇总 1)退出后托盘图标还是存在,没有消失 2)最小化后左下角会出现 窗口 3&#…

React 是怎样炼成的

本文主要讲述 React 的诞生过程和优化思路。 内容整理自 2014 年的 OSCON - React Architecture by vjeux,虽然从今天(2018)来看可能会有点历史感,但仍然值得学习了解。以史为鉴,从中也可以管窥 Facebook 优秀的工程管…

【pyqt5学习】——重写窗口右上角关闭事件closeEvent()

目录 1、法一:设置中文按钮 2、法二:不设置中文按钮 pyqt5 关闭按钮显示提示信息_Marvin_Xavier的博客-CSDN博客_pyqt 关闭按钮https://blog.csdn.net/marwenx/article/details/107226531 1、法一:设置中文按钮 def closeEvent(self, even…

【pyqt5学习】——日历控件calendarWidget设置单元格格式(前景、背景)、日历控件属性编辑

目录 0、导入库 1、返回日历选中的日期 2、更改日历控件周几(比如一个月属于周一的日期)的所有格子属性 3、更改日历控件单个格子(指定日期)属性 4、日历格子属性 5、信号——clicked() 6、成果展示 0、导入库 from PyQt5.Q…

linux内核数据结构之链表

1、前言 最近写代码需用到链表结构,正好公共库有关于链表的。第一眼看时,觉得有点新鲜,和我之前见到的链表结构不一样,只有前驱和后继指针,而没有数据域。后来看代码注释发现该代码来自linux内核,在linux源…

【bug修复】you must feed a value for placeholder tensor ‘Placeholder‘ with dtype float解决方案

最近碰到了这个you must feed a value for placeholder tensor Placeholder with dtype float and shape的问题,字面意思很好理解,就是没有给Placeholder赋值,可是我明明赋值了,百度了许多,也都是让我检查是否赋值以及…

动态代理3之代理工厂实现

动态代理的深化:承接动态代理2( 对 上级实例进行 深化),也就是 spring 的前身 (必须掌握)实例: 文件说明:1.有一个Waiter接口,该接口有一个 server() 、ShouQian()方法 2.有一个 Waiter接口的实…

【bug修复】解决ValueError: Tensor(“Variable:0“ dtype=float32_ref) must be from the same graph as Tensor(“R

bug:描述 在进行tensorflow进行搭建CNN网络时,在定义CNN的py文件中调用cnn模型,运行正常,但是在其他py文件中进行时就出现问题 ValueError: Tensor(“Variable:0” dtypefloat32_ref) must be from the same graph as Tensor(“Reshape:0”,…

Linux 图片传输功能c/c++(初版)

由于深度学习任务的需要,要在程序里面嵌入一个module。 这个module 的功能是接收来自ios客户端的图片。并且传送给深度学习分类器进行处理。 于是看了看各种各样的 module 实现方案。 先是用IO函数把图片以数组的方式存起来。 再和服务器建立连接,socket…

Val编程-val系列编程思想

利用Val语言可以编写出各种各样的应用程序。正如windows phone面临的窘境一样,受众太小,市场不大。应用程序不多,所以也谈不上成熟。国内的应用程序基本上就是简单的小程序,谈不上什么编程思想。国外许多都是基于kernel的而衍生出…

【pyqt5学习】——bug修复,利用qt资源库qrc文件进行背景图像设置,不显示图像

目录 bug描述 bug分析 bug解决 bug描述 利用下面文章的方法进行资源设置后,有的显示了有的没有显示 【pyqt5学习】——pyqt5中.qrc资源文件的创建与编写_有情怀的机械男的博客-CSDN博客_python qrc目录一、说明二、安装pyqt5以及相关工具(pyqt5、pyuic…

Datalore:用于机器学习可视化的新Web方案!

前不久,JetBrains团队发布了Datalore,这是一款基于云的web应用程序,用于构建机器学习模型并在Python中创建丰富的可视化。最新的测试版本旨在简化构建机器学习模型的流程,并帮助开发人员进行数据分析。由于Datalore的智能编码辅助…

CSS魔法堂:重拾Border之——图片作边框

前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-top-left/right-radius的水平半径之和大于元素宽度时,实际值会…

共享内存简介和mmap 函数

一、共享内存简介 共享内存区是最快的IPC形式,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。 即每个进程地址空间都有一个共享存储器的映射区,当这块区域都映射到相同的真正的物理地址空…

【pyqt5学习】——QToolTip,QLabel控件,伙伴关系

目录 0、学习资源 1、给控件设置提示信息——QToolTip 2、QLabel控件(显示图像、设置超链接、信号绑定) 3、QLabel伙伴关系 1)代码 2)效果 3)知识点addWidget 0、学习资源 PyQt5教程,来自网易云课堂…

SylixOS中select原理及使用分析

2019独角兽企业重金招聘Python工程师标准>>> 1. select接口简介 1.1 select接口使用用例 select是操作系统多路I/O复用技术实现的方式之一。 多路I/O复用技术大致使用场景为:构造一张感兴趣的文件描述符列表,然后调用多路复用的IO接口&#x…