目錄?
1 UI登錄界面的布局
2 UI登錄界面布局對(duì)應(yīng)的代碼
3 登錄界面和界面跳轉(zhuǎn)完整代碼
4 跳轉(zhuǎn)界面代碼函數(shù)和優(yōu)化界面代碼
5 最終效果
1 UI登錄界面的布局
? ? ? ?其中,<歡迎使用 XXXX 軟件><管理員><密碼>使用的是左邊功能的 label 類(lèi)、<登錄>使用的是左邊功能的 Push Button 類(lèi)、<管理員和密碼>的輸入使用的是左邊功能的 ?Line Edit 類(lèi)。這些輸出顯示和按鍵功能中的字體大小和邊框都可以對(duì)應(yīng)根據(jù)右邊的屬性進(jìn)行更改設(shè)置。
2 UI登錄界面布局對(duì)應(yīng)的代碼
(1)項(xiàng)目的目錄如下,login.ui 是上面保存的的界面布局。
?(2)UI界面布局的對(duì)應(yīng)代碼,則是 login.py 文件,可以右擊 login.ui 文件,找到 Exernal Tools?。然后點(diǎn)擊 PyUIC ,就可以自動(dòng)生成 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, QtWidgets
class 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.translate
login_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 登錄界面和界面跳轉(zhuǎn)完整代碼
下面是登錄界面和跳轉(zhuǎn)界面的完整代碼 login_mian.py?:(跳轉(zhuǎn)的界面 是我的上一篇博客使用PYQT5打開(kāi)電腦攝像頭并進(jìn)行拍照_暫未成功人士!的博客-CSDN博客,具體可以查看我上一篇博文)
#self.pushButton.setShortcut(_translate("MainWindow", "enter")) #設(shè)置快捷鍵
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QImage, QPixmap, QKeyEvent
from PyQt5.QtWidgets import QMessageBox
from login import Ui_login_MainWindow
from open_camera_main import *
from PyQt5.QtCore import Qt
class login_window(QtWidgets.QMainWindow, Ui_login_MainWindow):
def __init__(self):
super(login_window, self).__init__()
self.setupUi(self) # 創(chuàng)建窗體對(duì)象
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, '警告', '密碼不能為空,請(qǐng)輸入!')
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() # 生成主窗口的實(shí)例
# 1打開(kāi)新窗口
Ui_Main.show()
# 2關(guān)閉本窗口
self.close()
else:
QMessageBox.critical(self, '錯(cuò)誤', '密碼錯(cuò)誤!')
self.lineEdit.clear()
return None
if __name__ == '__main__':
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)#自適應(yīng)分辨率
app = QtWidgets.QApplication(sys.argv)
window = login_window()
Ui_Main = Open_Camera()# 生成主窗口的實(shí)例
window.show()
sys.exit(app.exec_())
4 跳轉(zhuǎn)界面代碼函數(shù)和優(yōu)化界面代碼
(1)界面跳轉(zhuǎn)主要添加的代碼為下面圖中的? <1> <2>?步驟中的部分:
?(2)登錄按鈕快捷鍵設(shè)計(jì),即按鍵盤(pán)? <enter>? 鍵就可進(jìn)行登錄跳轉(zhuǎn)。
self.pushButton.setShortcut(_translate("login_MainWindow", "Enter")) #設(shè)置快捷鍵
添加上面的代碼到?login.py 文件中的最下方即可:
或者在設(shè)計(jì)界面上的右面添加按鍵的快捷方式,如下圖
?(3)注意兩個(gè)界面的函數(shù)不能一樣,因?yàn)橐话銢](méi)有更改的用PyUIC直接生成的.py文件的函數(shù)名是一樣的,要進(jìn)行更改。
5 最終效果
?本篇博文和上一篇博文使用PYQT5打開(kāi)電腦攝像頭并進(jìn)行拍照_暫未成功人士!的博客-CSDN博客這兩篇結(jié)合在一起就可達(dá)到下面的效果:
點(diǎn)擊登錄后的界面文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-785900.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-785900.html
到了這里,關(guān)于使用PYQT5設(shè)計(jì)登錄界面并實(shí)現(xiàn)界面跳轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!