pyqt5利用pyqtDesigner实现登录界面
作者:窥月 发布时间:2023-09-04 15:19:36
标签:pyqt5,pyqtDesigner,登录
本文实例为大家分享了pyqt5利用pyqtDesigner实现登录界面的具体代码,供大家参考,具体内容如下
为便于操作 界面和逻辑分离
逻辑类:
import sys
import pymysql
from loginUI import * //导入
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import *
from PyQt5.QtGui import
class Login(QtWidgets.QDialog):
def __init__(self):
super(Login, self).__init__()
self.ui = Ui_login_Ui()
self.ui.setupUi(self)
# self.setMinimumSize(QtCore.QSize(400, 200)) # 控制缩放范围
# self.setMaximumSize(QtCore.QSize(400, 200))
self.setWindowTitle("欢迎使用停车场管理系统")
self.setFixedSize(self.width(), self.height())
self.ui.labelTip.hide()
self.ui.labelTip.setText("密码或用户名不能为空!")
# 设置label字体
labelFont = QFont()
labelFont.setPixelSize(15)
# 设置动态背景
self.gif = QMovie('bg2.gif')
self.ui.label_2.setMovie(self.gif)
self.gif.start()
# 这在label属性
self.ui.labelTip.setStyleSheet(
"QLabel{color:red;font-size:12px;font-weight:bold;font-family:Roman times;}"
)
self.ui.userLabel.setStyleSheet("QLabel{background:white;}"
"QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Roman times;}"
"QLabel:hover{color:rgb(300,300,300,120);}")
self.ui.pwdlabel.setStyleSheet("QLabel{background:white;}"
"QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Roman times;}"
"QLabel:hover{color:rgb(300,300,300,120);}")
self.ui.label.setStyleSheet("QLabel{background:white;}"
"QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Roman times;}"
"QLabel:hover{color:rgb(300,300,300,120);}")
self.ui.loginButton.setStyleSheet("QPushButton{color:black}"
"QPushButton:hover{color:red}"
"QPushButton{background-color:lightblue}"
"QPushButton{border:2px}"
"QPushButton{border-radius:10px}"
"QPushButton{padding:2px 4px}")
self.ui.registerButton.setStyleSheet("QPushButton{color:black}"
"QPushButton:hover{color:red}"
"QPushButton{background-color:lightgreen}"
"QPushButton{border:2px}"
"QPushButton{border-radius:10px}"
"QPushButton{padding:2px 4px}")
palette = QPalette()
icon = QPixmap('bg2.gif').scaled(800, 600)
palette.setBrush(self.backgroundRole(), QBrush(icon))
self.setPalette(palette)
self.ui.userLabel.setFont(labelFont)
self.ui.pwdlabel.setFont(labelFont)
self.ui.label.setFont(labelFont)
# 设置控件尺寸
# self.ui.userlineEdit.setFrame(False)
# self.ui.pwdlineEdit.setFrame(False)
self.ui.pwdlineEdit.setEchoMode(QLineEdit.Password)# 输入框设为密码模式
self.ui.pwdlineEdit.setClearButtonEnabled(True)
self.ui.userlineEdit.setClearButtonEnabled(True)
self.ui.userlineEdit.setFixedWidth(190)
self.ui.userlineEdit.setFixedHeight(30)
self.ui.pwdlineEdit.setFixedWidth(190)
self.ui.pwdlineEdit.setFixedHeight(30)
self.ui.comboBox.setFixedWidth(100)
self.ui.comboBox.setFixedHeight(28)
self.ui.loginButton.setFixedSize(75, 28)
self.ui.registerButton.setFixedSize(75, 28)
self.ui.loginButton.setShortcut('Enter') # shortcut key
# 登陆的槽函数登陆按钮 最好写在init的析构函数中,避免链接多次产生异常
self.ui.loginButton.clicked.connect(self.slotLogin)
self.ui.registerButton.clicked.connect(self.slotRegister)
self.ui.pushButton.clicked.connect(self.findPwd)
name = self.ui.userlineEdit.text()
pwd = self.ui.pwdlineEdit.text()
identity = self.ui.comboBox.currentIndex()
identity = str(identity)
sql = "select * from administrater where username = '" + name + "' and password = '" + pwd + "' and identity= '"+ identity +"' "
db = PyMySQLHelper()
db.selectALL(sql)
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Enter:
self.slotLogin()
def findPwd(self):
# self.accept()
self.u = FPwd_ui()
self.u.show()
# self.ui.exec()
def slotLogin(self):
# # 获得登录输入
name = self.ui.userlineEdit.text()
pwd = self.ui.pwdlineEdit.text()
print(name)
db = PyMySQLHelper()
identity = self.ui.comboBox.currentIndex() # 获取下标
identity = str(identity)
if name != '' and pwd != '':
if identity == '0':
sql = "select * from administrater where username = '" + name + "' and " \
"password = '" + pwd + "' and identity= '" + identity + "' "
print(sql)
# cursor.execute(sql)
# results = cursor.fetchall()
results = db.selectALL(sql)
if results:
self.ui1 = Finance()
# self.ui1.exec()
self.ui1.show()
self.close()
else:
OK = QMessageBox.warning(self, ("警告"), ("""账号或密码错误!"""))
# cursor.close()
# conn.close()
elif identity == '1':
sql = "select * from administrater where username = '" + name + "' and " \
"password = '" + pwd + "' and identity= '" + identity + "' "
print(sql)
# cursor.execute(sql)
# results = cursor.fetchall()
results = db.selectALL(sql)
if results:
self.ui2 = InfoManage()
self.ui2.show()
self.close()
else:
OK = QMessageBox.warning(self, ("警告"), ("""账号或密码错误!"""))
elif identity == '2':
sql = "select * from administrater where username = '" + name + "' and " \
"password = '" + pwd + "' and identity= '" + identity + "' "
print(sql)
results = db.selectALL(sql)
# print(identity)
if results:
self.uu = SeatManage()
self.uu.exec()
self.close()
else:
OK = QMessageBox.warning(self, ("警告"), ("""账号或密码错误!"""))
elif name == 'admin' and pwd == '123' and identity == '3':
self.a = Admin()
self.a.show()
self.close()
else:
if name == '':
OK = QMessageBox.warning(self, ("警告"), ("""请输入账号!"""))
if pwd == '':
OK = QMessageBox.warning(self, ("警告"), ("""请输入密码!"""))
# cursor.close()
# conn.close()
def slotRegister(self):
self.i = reUi() # self.i的窗口命名不能重复
self.i.exec_()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
my = Login()
my.show()
sys.exit(app.exec_())
界面类:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_login_Ui(object):
def setupUi(self, login_Ui):
login_Ui.setObjectName("login_Ui")
login_Ui.resize(581, 533)
self.gridLayoutWidget = QtWidgets.QWidget(login_Ui)
self.gridLayoutWidget.setGeometry(QtCore.QRect(160, 330, 295, 141))
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.loginButton = QtWidgets.QPushButton(self.gridLayoutWidget)
self.loginButton.setObjectName("loginButton")
self.horizontalLayout_2.addWidget(self.loginButton)
self.registerButton = QtWidgets.QPushButton(self.gridLayoutWidget)
self.registerButton.setObjectName("registerButton")
self.horizontalLayout_2.addWidget(self.registerButton)
self.pushButton = QtWidgets.QPushButton(self.gridLayoutWidget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_2.addWidget(self.pushButton)
self.gridLayout.addLayout(self.horizontalLayout_2, 4, 1, 1, 1)
self.userlineEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.userlineEdit.setObjectName("userlineEdit")
self.gridLayout.addWidget(self.userlineEdit, 0, 1, 1, 1)
self.userLabel = QtWidgets.QLabel(self.gridLayoutWidget)
self.userLabel.setObjectName("userLabel")
self.gridLayout.addWidget(self.userLabel, 0, 0, 1, 1)
self.labelTip = QtWidgets.QLabel(self.gridLayoutWidget)
self.labelTip.setObjectName("labelTip")
self.gridLayout.addWidget(self.labelTip, 3, 1, 1, 1)
self.pwdlineEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.pwdlineEdit.setObjectName("pwdlineEdit")
self.gridLayout.addWidget(self.pwdlineEdit, 1, 1, 1, 1)
self.pwdlabel = QtWidgets.QLabel(self.gridLayoutWidget)
self.pwdlabel.setObjectName("pwdlabel")
self.gridLayout.addWidget(self.pwdlabel, 1, 0, 1, 1)
self.comboBox = QtWidgets.QComboBox(self.gridLayoutWidget)
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.gridLayout.addWidget(self.comboBox, 2, 1, 1, 1)
self.label = QtWidgets.QLabel(self.gridLayoutWidget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 2, 0, 1, 1)
self.label_2 = QtWidgets.QLabel(login_Ui)
self.label_2.setGeometry(QtCore.QRect(-10, 0, 601, 321))
self.label_2.setText("")
self.label_2.setObjectName("label_2")
self.retranslateUi(login_Ui)
QtCore.QMetaObject.connectSlotsByName(login_Ui)
def retranslateUi(self, login_Ui):
_translate = QtCore.QCoreApplication.translate
login_Ui.setWindowTitle(_translate("login_Ui", "Form"))
self.loginButton.setText(_translate("login_Ui", "登 陆"))
self.registerButton.setText(_translate("login_Ui", "注 册"))
self.pushButton.setText(_translate("login_Ui", "找回密码"))
self.userLabel.setText(_translate("login_Ui", " 账 户"))
self.labelTip.setText(_translate("login_Ui", "密码或用户名错误"))
self.pwdlabel.setText(_translate("login_Ui", " 密 码"))
self.comboBox.setItemText(0, _translate("login_Ui", "财务管理员"))
self.comboBox.setItemText(1, _translate("login_Ui", "信息管理员"))
self.comboBox.setItemText(2, _translate("login_Ui", "停车场管理员"))
self.comboBox.setItemText(3, _translate("login_Ui", "超级管理员"))
self.label.setText(_translate("login_Ui", " 请选择"))
具体代码:pyqt5实现登录界面
来源:https://blog.csdn.net/qq_32973061/article/details/81749982
0
投稿
猜你喜欢
- 01 实现我们几乎每个人都用过计算器,大家对于计算器应该都是比较熟悉的,计算器整体也是比较简单的,主要包括:显示器、键盘、运算的逻辑处理等,
- 本文主要介绍在 windows 10 系统中安装 Anaconda3 的详细过程。下载Anaconda 官网下载地址目前最新版本是 pyth
- pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使
- TCP协议用在python和wifi模块之间python建立TCP连接需要用到socket协议 如果是TCP Server,建立T
- Django中的静态文件夹static在创建好Django项目时默认是没有的,需要我们手动自己去创建,static文件夹里主要存放一些能暴露
- 常用的标准库序列化模块import pickle序列化和反序列化把不能直接存储的数据变得可存储,这个过程叫做序列化。把文件中的数据拿出来,回
- 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法。由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的
- 由于存在函数内部不能访问全局作用的,所以就需要一种可以引入上一级作用域的语法结构,可以通过use使用函数声明时所在作用域的变量的值。php的
- 首先先安装好我们的Python 这里就不多介绍了1.打开python.exe:点击File 下的小扳手图标 Settings…2.打开设置界
- 好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么
- 1.算法描述:(1)共循环 n-1 次(2)每次循环中,如果 前面的数大于后面的数,就交换(3)设置一个标签,如果上次没有交换,就说明这个是
- Python 正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了
- 在日常的工作中,我们通常会有去探测目标主机是否存活的应用场景,单个的服务器主机可以通过计算机自带的DOS命令来执行,但是业务的存在往往不是单
- 时间格式化函数,代码简单但较实用代码很简单,谁都能看懂Function fmstr(str, str1, Lens) Dim str2For
- 环境pip install opencv-python==3.4.2.16pip install opencv-contrib-python
- 这篇文章主要介绍了python如何使用socketserver模块实现并发聊天,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
- 优雅的设计经常包含一些特殊的字体,而这些字体并不存在于用户的字体库中,我们并不能奢求每一个访客都是设计师。 :-)虽然CSS3标
- 一、创建一个进程实例化 Process 类创建一个进程对象然后调用它的 start 方法即可生成一个子进程from multiprocess
- 这篇文章主要介绍了Python中使用gflags实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 本文实例讲述了python实现备份目录的方法。分享给大家供大家参考。具体如下:备份脚本1:#!/usr/bin/python# Filena