使用PYQT5设计登录界面并实现界面跳转
目录
1 UI登录界面的布局
2 UI登录界面布局对应的代码
3 登录界面和界面跳转完整代码
4 跳转界面代码函数和优化界面代码
5 最终效果
1 UI登录界面的布局
其中,<欢迎使用 XXXX 软件><管理员><密码>使用的是左边功能的 label 类、<登录>使用的是左边功能的 Push Button 类、<管理员和密码>的输入使用的是左边功能的 Line Edit 类。这些输出显示和按键功能中的字体大小和边框都可以对应根据右边的属性进行更改设置。
2 UI登录界面布局对应的代码
(1)项目的目录如下,login.ui 是上面保存的的界面布局。
(2)UI界面布局的对应代码,则是 login.py 文件,可以右击 login.ui 文件,找到 Exernal Tools 。然后点击 PyUIC ,就可以自动生成 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_login_MainWindow(object):def setupUi(self, login_MainWindow):login_MainWindow.setObjectName("login_MainWindow")login_MainWindow.setEnabled(True)login_MainWindow.resize(575, 392)login_MainWindow.setAnimated(True)self.centralwidget = QtWidgets.QWidget(login_MainWindow)self.centralwidget.setEnabled(True)self.centralwidget.setObjectName("centralwidget")self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(90, 30, 391, 79))font = QtGui.QFont()font.setPointSize(30)font.setBold(True)font.setItalic(True)font.setWeight(75)self.label_3.setFont(font)self.label_3.setObjectName("label_3")self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(100, 200, 71, 41))font = QtGui.QFont()font.setPointSize(15)self.label_2.setFont(font)self.label_2.setObjectName("label_2")self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(100, 150, 81, 41))font = QtGui.QFont()font.setPointSize(15)self.label.setFont(font)self.label.setObjectName("label")self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit.setGeometry(QtCore.QRect(180, 200, 221, 41))font = QtGui.QFont()font.setPointSize(15)self.lineEdit.setFont(font)self.lineEdit.setText("")self.lineEdit.setEchoMode(QtWidgets.QLineEdit.Password)self.lineEdit.setObjectName("lineEdit")self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_2.setGeometry(QtCore.QRect(180, 150, 221, 41))font = QtGui.QFont()font.setPointSize(15)self.lineEdit_2.setFont(font)self.lineEdit_2.setObjectName("lineEdit_2")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(180, 280, 171, 51))font = QtGui.QFont()font.setPointSize(20)font.setBold(True)font.setWeight(75)self.pushButton.setFont(font)self.pushButton.setObjectName("pushButton")login_MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(login_MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 575, 22))self.menubar.setObjectName("menubar")login_MainWindow.setMenuBar(self.menubar)self.retranslateUi(login_MainWindow)QtCore.QMetaObject.connectSlotsByName(login_MainWindow)def retranslateUi(self, login_MainWindow):_translate = QtCore.QCoreApplication.translatelogin_MainWindow.setWindowTitle(_translate("login_MainWindow", "MainWindow"))self.label_3.setText(_translate("login_MainWindow", "欢迎使用 XXXX 软件"))self.label_2.setText(_translate("login_MainWindow", "密码:"))self.label.setText(_translate("login_MainWindow", "管理员:"))self.lineEdit_2.setText(_translate("login_MainWindow", "帅哥"))self.pushButton.setText(_translate("login_MainWindow", "登录"))
3 登录界面和界面跳转完整代码
下面是登录界面和跳转界面的完整代码 login_mian.py :(跳转的界面 是我的上一篇博客使用PYQT5打开电脑摄像头并进行拍照_暂未成功人士!的博客-CSDN博客,具体可以查看我上一篇博文)
#self.pushButton.setShortcut(_translate("MainWindow", "enter")) #设置快捷键
import sysfrom PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QImage, QPixmap, QKeyEventfrom PyQt5.QtWidgets import QMessageBox
from login import Ui_login_MainWindow
from open_camera_main import *
from PyQt5.QtCore import Qtclass login_window(QtWidgets.QMainWindow, Ui_login_MainWindow):def __init__(self):super(login_window, self).__init__()self.setupUi(self) # 创建窗体对象self.init()self.admin = "帅哥"self.Password = "000"def init(self):self.pushButton.clicked.connect(self.login_button) #连接槽def login_button(self):if self.lineEdit.text()=="":QMessageBox.warning(self, '警告', '密码不能为空,请输入!')return None# if self.password == self.lineEdit.text():if (self.lineEdit.text()== self.Password) and self.lineEdit_2.text()== self.admin:# Ui_Main = Open_Camera() # 生成主窗口的实例# 1打开新窗口Ui_Main.show()# 2关闭本窗口self.close()else:QMessageBox.critical(self, '错误', '密码错误!')self.lineEdit.clear()return Noneif __name__ == '__main__':from PyQt5 import QtCoreQtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)#自适应分辨率app = QtWidgets.QApplication(sys.argv)window = login_window()Ui_Main = Open_Camera()# 生成主窗口的实例window.show()sys.exit(app.exec_())
4 跳转界面代码函数和优化界面代码
(1)界面跳转主要添加的代码为下面图中的 <1> <2> 步骤中的部分:
(2)登录按钮快捷键设计,即按键盘 <enter> 键就可进行登录跳转。
self.pushButton.setShortcut(_translate("login_MainWindow", "Enter")) #设置快捷键
添加上面的代码到 login.py 文件中的最下方即可:
或者在设计界面上的右面添加按键的快捷方式,如下图
(3)注意两个界面的函数不能一样,因为一般没有更改的用PyUIC直接生成的.py文件的函数名是一样的,要进行更改。
5 最终效果
本篇博文和上一篇博文使用PYQT5打开电脑摄像头并进行拍照_暂未成功人士!的博客-CSDN博客这两篇结合在一起就可达到下面的效果:
点击登录后的界面
使用PYQT5设计登录界面并实现界面跳转相关推荐
- 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)
基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1) 这个是登录界面: 部分代码如下: // An highlighted block from 文件1 import * from PyQt ...
- 基于PyQt5实现登录界面设计
基于Python和PyQt5实现登录界面 实现说明 通过登录界面输入账号密码与数据库中存在的账号密码进行比对,并对用户角色(管理员0/普通用户1)进行识别.密码错误时,提示错误信息,密码正确则跳转至用 ...
- PyQt5设计GUI(二)为程序设计图形界面
PyQt5设计GUI(一)pycharm中配置pyqt5 一.熟悉designer--设计界面的神器 designer是一个强大的GUI设计工具,设计完之后还可以自动生成代码,然后我们将这些代码转换成 ...
- Java设计登录界面——GUI
GUI(图形用户界面) 要设计一个简洁的登陆界面,首先需要创建一个窗体,然后在窗体中设置用户名,密码,登录按钮,退出按钮.可以直接在窗体中把需要的元素组件添加进去,也可以创建中间容器,将中间容器再添加 ...
- 使用qt设计登录界面初学者_初学者素描:设计登录表单界面
使用qt设计登录界面初学者 由Bohemian Coding的好伙伴制作的Sketch是界面设计的出色程序. 本入门级教程将向您介绍使用Sketch进行设计. 您将不需要任何程序经验,只需要一些空闲时 ...
- 界面开发(3)--- PyQt5用户登录界面连接数据库
文章目录 数据库 账户注册 账号登录 找回密码 为了实现用户登录界面的登录功能,我们必须建立一个数据库,并把账号和对应的密码,存储到数据库中.如果输入的账号和密码与数据库中的一致,那我们就允许用户登录 ...
- PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式
PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 文章目录 PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 1.前言 2.方式一:另建 py ...
- Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应(二)
Python +Echarts +PyQt5设计股票期货自动交易系统 二.软件界面响应(二) 实现效果截屏: 上一篇 Python +Echarts +PyQt5设计股票期货自动交易系统 二.软件界面 ...
- python项目实战:pyqt5实现登录界面模板
2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家介绍一个利用开发登录界面模板,基于pyqt5库,pyqt5这也一个PythonGUI界面开发的库,非常强大,关 ...
最新文章
- 黄金分割算法求函数的极值C++实现
- 给网游写一个挂吧(三) – 启动外挂下
- 让32位Eclipse和64位Eclipse同是在64的Windows7上运行
- pytorch将label转为one hot形式
- CGLib动态代理原理
- 计算机考研8,计算机考研每日一练:第八天
- C++虚复制构造函数,设置Clone()方法返回基类指针,并设置为虚函数
- 【Pyqt5】实现小学三年级口算题生成器
- 腾讯地图 地图组件 缩放级别
- JavaScript使用百度地图API获取当前位置信息
- git仓库服务器SSH认证示例
- 吐血整理!140种Python标准库、第三方库和外部工具都有了
- 6. 彤哥说netty系列之Java NIO核心组件之Buffer
- STM32-(ADC,DMA,重映射)
- 从头开始训练BERT语言模型
- 机器人瓦力材质库下载_瓦力2020材质库下载 3ds max瓦力材质库2020最新版(支持VR4.1+Gamma2.2) 下载-脚本之家...
- 使用计算机报点系统时填记,铁路 车务 运转系统 自动闭塞《接发列车作业标准》...
- < 在Vue中,为什么 v-if 和 v-for 不建议一起使用 ? >
- 寒假2018培训:DAY1
- bandzip和360解压_最优秀的压缩/解压缩软件—BandZip