首先用qtdesigner设计界面(一律选择widget)
如何配置Pyqt5参考从零开始 使用PyQt5
拖动按钮、label等控件创建创建窗口:
Ctrl+s 保存为.ui文件
点击文件右击选择PyUIC再转换为.py文件
添加程序入口
import sys
# 主方法,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
ui = Ui_Form() # 创建PyQt设计的窗体对象
ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
MainWindow.show() # 显示窗体
sys.exit(app.exec_()) # 程序关闭时退出进程
运行结果如图所示
主要要理解和自己设置的代码
self.pushButton_2.clicked.connect(Form.close)
# self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999)) # 设置输入密码行8位输入方式1
self.lineEdit_2.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp('^\d{8}'))) # 设置输入密码行8位输入方式2
self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password) # 设置隐藏密码输入
self.pushButton.setIcon(QIcon(QPixmap('login.ico'))) # 设置登录按钮显示图标
self.pushButton.clicked.connect(self.login) # 绑定登录函数
self.pushButton.setShortcut('ctrl+d') # 设置登录快捷键
self.pushButton_2.setShortcut('Ctrl+q') # 设置退出快捷键
self.pushButton_2.setIcon(QIcon(QPixmap('exit.ico'))) # 设置退出图标
# 设置系统左上角运行图标
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap('apple.ico'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
QtCore.QMetaObject.connectSlotsByName(Form)
def login(self):
print('进入登录函数')
from PyQt5.QtWidgets import QMessageBox
# 使用information()方法弹出消息提示框
QMessageBox.information(MainWindow, '登录消息', '用户名: ' + self.lineEdit.text() + ' 密码: '
+ self.lineEdit_2.text(), QMessageBox.Ok)
全部代码
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '系统登录.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# 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
from PyQt5.Qt import *
from PyQt5.QtGui import QPixmap, QIcon
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(340, 230)
self.label = QtWidgets.QLabel(Form)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.label.setGeometry(QtCore.QRect(30, 50, 70,