《Python GUI设计 PyQt5从入门到实践》 第5章代码(第一部分)
potentialzy
2021年08月05日 02:20
收录于文集
共93篇

《Python GUI设计 PyQt5从入门到实践》目录​

02包含用户名和密码的登录窗口

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.2.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(271, 118)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(50, 22, 54, 12))

        self.label.setObjectName("label")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)

        self.label_2.setGeometry(QtCore.QRect(50, 52, 54, 12))

        self.label_2.setObjectName("label_2")

        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit.setGeometry(QtCore.QRect(100, 18, 113, 20))

        self.lineEdit.setObjectName("lineEdit")

        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit_2.setGeometry(QtCore.QRect(100, 50, 113, 20))

        self.lineEdit_2.setObjectName("lineEdit_2")

        self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password) # 设置文本框为密码

        self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000,99999999)) # 设置只能输入8位数字

        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)

        self.menubar.setGeometry(QtCore.QRect(0, 0, 271, 23))

        self.menubar.setObjectName("menubar")

        MainWindow.setMenuBar(self.menubar)

        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.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "系统登录"))

        self.label.setText(_translate("MainWindow", "用户名:"))

        self.label_2.setText(_translate("MainWindow", "密  码:"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

03设置多行文本和HTML文本的对比显示

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.3.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(542, 143)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)

        self.textEdit.setGeometry(QtCore.QRect(40, 40, 221, 80))

        self.textEdit.setObjectName("textEdit")

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(20, 20, 54, 12))

        self.label.setObjectName("label")

        self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)

        self.textEdit_2.setGeometry(QtCore.QRect(300, 40, 221, 80))

        self.textEdit_2.setObjectName("textEdit_2")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)

        self.label_2.setGeometry(QtCore.QRect(280, 20, 54, 12))

        self.label_2.setObjectName("label_2")

        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)

        self.menubar.setGeometry(QtCore.QRect(0, 0, 542, 23))

        self.menubar.setObjectName("menubar")

        MainWindow.setMenuBar(self.menubar)

        # 设置纯文本显示

        self.textEdit.setPlainText('与失败比起来,我对乏味和平庸的恐惧要严重的多。'

                                   '对我而言,很好的事要比糟糕的事好,而糟糕的事要比平庸的是好,因为糟糕的事至少给生活增加了滋味。')

        # 设置HTML文本显示

        self.textEdit_2.setHtml("与失败比起来,我对乏味和平庸的恐惧要严重的多。"

                                   "对我而言,<font color='red' size=12>很好的事要比糟糕的事好,而糟糕的事要比平庸的是好,</font>因为糟糕的事至少给生活增加了滋味。")

        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "TextEdit应用"))

        self.label.setText(_translate("MainWindow", "纯文本:"))

        self.label_2.setText(_translate("MainWindow", "HTML文本:"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

04获取SpinBox中选择的数字

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.4.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(284, 97)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.spinBox = QtWidgets.QSpinBox(self.centralwidget)

        self.spinBox.setGeometry(QtCore.QRect(20, 10, 101, 22))

        self.spinBox.setObjectName("spinBox")

        self.spinBox.setMinimum(0) # 设置最小值

        self.spinBox.setMaximum(100) # 设置最大值

        self.spinBox.setSingleStep(2) # 设置步长值

        # #​ 通过setRange()方法设置最小值、最大值,等同于setMinimum和setMaximum

        # self.spinBox.setRange(0,100)

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(20, 40, 131, 16))

        self.label.setObjectName("label")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)

        self.label_2.setGeometry(QtCore.QRect(150, 40, 54, 12))

        self.label_2.setText("")

        self.label_2.setObjectName("label_2")

        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)

        self.menubar.setGeometry(QtCore.QRect(0, 0, 284, 23))

        self.menubar.setObjectName("menubar")

        MainWindow.setMenuBar(self.menubar)

        self.retranslateUi(MainWindow)

        # 将valueChanged信号与自定义槽函数相关联

        self.spinBox.valueChanged.connect(self.getvalue)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    # 获取SpinBox的当前值,并显示在Label中

    def getvalue(self):

        self.label_2.setText(str(self.spinBox.value()))

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.label.setText(_translate("MainWindow", "当前控件中显示的数值:"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

05获取DoubleSpinBox中的小数位数并获取选择的数字

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.5.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(234, 97)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(20, 40, 131, 16))

        self.label.setObjectName("label")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)

        self.label_2.setGeometry(QtCore.QRect(150, 40, 54, 12))

        self.label_2.setText("")

        self.label_2.setObjectName("label_2")

        self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget)

        self.doubleSpinBox.setGeometry(QtCore.QRect(20, 10, 101, 22))

        self.doubleSpinBox.setObjectName("doubleSpinBox")

        self.doubleSpinBox.setMinimum(0)  # 设置最小值

        self.doubleSpinBox.setMaximum(99.999)  # 设置最大值

        self.doubleSpinBox.setSingleStep(0.001)  # 设置步长值

        self.doubleSpinBox.setDecimals(3) # 设置保留3位小数

        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)

        self.menubar.setGeometry(QtCore.QRect(0, 0, 234, 23))

        self.menubar.setObjectName("menubar")

        MainWindow.setMenuBar(self.menubar)

        self.retranslateUi(MainWindow)

        # 将valueChanged信号与自定义槽函数相关联

        self.doubleSpinBox.valueChanged.connect(self.getvalue)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    # 获取SpinBox的当前值,并显示在Label中

    def getvalue(self):

        self.label_2.setText(str(self.doubleSpinBox.value()))

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.label.setText(_translate("MainWindow", "当前控件中显示的数值:"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

06设置液晶显示屏中的数字显示

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.6.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(199, 96)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)

        self.lcdNumber.setGeometry(QtCore.QRect(20, 40, 161, 41))

        self.lcdNumber.setDigitCount(7) # 设置最大显示7位数字

        self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec) # 设置默认以十进制显示数字

        self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat) # 设置数字显示屏的显示样式

        self.lcdNumber.setObjectName("lcdNumber")

        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit.setGeometry(QtCore.QRect(90, 10, 91, 20))

        self.lineEdit.setObjectName("lineEdit")

        # 文本框编辑结束时,发射editingFinished信号,与自定义槽函数关联

        self.lineEdit.editingFinished.connect(self.setvalue)

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(20, 12, 71, 16))

        self.label.setObjectName("label")

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    # 自定义槽函数,用来在液晶显示屏中显示文本框中的数字

    def setvalue(self):

        self.lcdNumber.setProperty("value",self.lineEdit.text())

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.label.setText(_translate("MainWindow", "请输入数字:"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

07制作登录窗口

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.7.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtGui import QPixmap,QIcon

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(225, 121)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)

        self.pushButton.setGeometry(QtCore.QRect(40, 83, 61, 23))

        self.pushButton.setObjectName("pushButton")

        self.pushButton.setIcon(QIcon(QPixmap("login.ico"))) # 为登录按钮设置图标

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(29, 22, 54, 12))

        self.label.setObjectName("label")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)

        self.label_2.setGeometry(QtCore.QRect(29, 52, 54, 12))

        self.label_2.setObjectName("label_2")

        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit.setGeometry(QtCore.QRect(79, 18, 113, 20))

        self.lineEdit.setObjectName("lineEdit")

        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit_2.setGeometry(QtCore.QRect(78, 50, 113, 20))

        self.lineEdit_2.setObjectName("lineEdit_2")

        self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)  # 设置文本框为密码

        self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999))  # 设置只能输入8位数字

        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)

        self.pushButton_2.setGeometry(QtCore.QRect(120, 83, 61, 23))

        self.pushButton_2.setObjectName("pushButton_2")

        self.pushButton_2.setIcon(QIcon(QPixmap("exit.ico")))  # 为退出按钮设置图标

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        # 为登录按钮的clicked信号绑定自定义槽函数

        self.pushButton.clicked.connect(self.login)

        # 为退出按钮的clicked信号绑定MainWindow窗口自带的close槽函数

        self.pushButton_2.clicked.connect(MainWindow.close)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def login(self):

        from PyQt5.QtWidgets import QMessageBox

        # 使用information()方法弹出信息提示框

        QMessageBox.information(MainWindow, "登录信息", "用户名:"+self.lineEdit.text()+"  密码:"+self.lineEdit_2.text(), QMessageBox.Ok)

    def retranslateUi(self, MainWindow):

            _translate = QtCore.QCoreapplication.translate

            MainWindow.setWindowTitle(_translate("MainWindow", "系统登录"))

            self.pushButton.setText(_translate("MainWindow", "登录"))

            self.label.setText(_translate("MainWindow", "用户名:"))

            self.label_2.setText(_translate("MainWindow", "密  码:"))

            self.pushButton_2.setText(_translate("MainWindow", "退出"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

08设置一个向上箭头的工具按钮

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.8.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(241, 108)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.toolButton = QtWidgets.QToolButton(self.centralwidget)

        self.toolButton.setGeometry(QtCore.QRect(50, 20, 121, 61))

        self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)

        self.toolButton.setArrowType(QtCore.Qt.UpArrow)

        self.toolButton.setIconSize(QtCore.QSize(32,32)) # 设置图标大小

        self.toolButton.setObjectName("toolButton")

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.toolButton.setText(_translate("MainWindow", "..."))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

09使用命令连接按钮

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.9.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(289, 84)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.commandLinkButton = QtWidgets.QCommandLinkButton(self.centralwidget)

        self.commandLinkButton.setGeometry(QtCore.QRect(20, 20, 241, 41))

        self.commandLinkButton.setObjectName("commandLinkButton")

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.commandLinkButton.setText(_translate("MainWindow", "https://www.mingrisoft.com"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

10选择登录用户角色

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.10.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtWidgets import QMessageBox

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(215, 128)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit_2.setGeometry(QtCore.QRect(75, 44, 113, 20))

        self.lineEdit_2.setObjectName("lineEdit_2")

        self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)  # 设置文本框为密码

        self.lineEdit_2.setValidator(QtGui.QIntValidator(10000000, 99999999))  # 设置只能输入8位数字

        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)

        self.pushButton_2.setGeometry(QtCore.QRect(113, 97, 61, 23))

        self.pushButton_2.setObjectName("pushButton_2")

        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)

        self.lineEdit.setGeometry(QtCore.QRect(76, 12, 113, 20))

        self.lineEdit.setObjectName("lineEdit")

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)

        self.pushButton.setGeometry(QtCore.QRect(33, 97, 61, 23))

        self.pushButton.setObjectName("pushButton")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)

        self.label_2.setGeometry(QtCore.QRect(26, 46, 54, 12))

        self.label_2.setObjectName("label_2")

        self.label = QtWidgets.QLabel(self.centralwidget)

        self.label.setGeometry(QtCore.QRect(26, 16, 54, 12))

        self.label.setObjectName("label")

        self.radioButton = QtWidgets.QRadioButton(self.centralwidget)

        self.radioButton.setGeometry(QtCore.QRect(36, 73, 61, 16))

        self.radioButton.setObjectName("radioButton")

        self.radioButton.setChecked(True) # 设置管理员单选按钮默认选中

        self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)

        self.radioButton_2.setGeometry(QtCore.QRect(106, 73, 71, 16))

        self.radioButton_2.setObjectName("radioButton_2")

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        # 为登录按钮的clicked信号绑定自定义槽函数

        self.pushButton.clicked.connect(self.login)

        # 为退出按钮的clicked信号绑定MainWindow窗口自带的close槽函数

        self.pushButton_2.clicked.connect(MainWindow.close)

        # 为单选按钮的toggled信号绑定自定义槽函数

        self.radioButton.toggled.connect(self.select)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def login(self):

        # 使用information()方法弹出信息提示框

        QMessageBox.information(MainWindow, "登录信息", "用户名:"+self.lineEdit.text()+"  密码:"+self.lineEdit_2.text(), QMessageBox.Ok)

    # 自定义槽函数,用来判断用户登录身份

    def select(self):

        if self.radioButton.isChecked(): # 判断是否为管理员登录

            QMessageBox.information(MainWindow, "提示","您选择的是 管理员  登录", QMessageBox.Ok)

        elif self.radioButton_2.isChecked(): # 判断是否为普通用户登录

            QMessageBox.information(MainWindow, "提示", "您选择的是 普通用户  登录", QMessageBox.Ok)

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "系统登录"))

        self.pushButton_2.setText(_translate("MainWindow", "重置"))

        self.pushButton.setText(_translate("MainWindow", "登录"))

        self.label_2.setText(_translate("MainWindow", "密  码:"))

        self.label.setText(_translate("MainWindow", "用户名:"))

        self.radioButton.setText(_translate("MainWindow", "管理员"))

        self.radioButton_2.setText(_translate("MainWindow", "普通用户"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程

11设置用户权限

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '5.11.ui'

#

# Created by: PyQt5 UI code generator 5.13.2

#

# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(211, 139)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.checkBox = QtWidgets.QCheckBox(self.centralwidget)

        self.checkBox.setGeometry(QtCore.QRect(22, 19, 101, 16))

        self.checkBox.setObjectName("checkBox")

        self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget)

        self.checkBox_2.setGeometry(QtCore.QRect(122, 19, 101, 16))

        self.checkBox_2.setObjectName("checkBox_2")

        self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget)

        self.checkBox_3.setGeometry(QtCore.QRect(22, 49, 101, 16))

        self.checkBox_3.setObjectName("checkBox_3")

        self.checkBox_4 = QtWidgets.QCheckBox(self.centralwidget)

        self.checkBox_4.setGeometry(QtCore.QRect(122, 49, 101, 16))

        self.checkBox_4.setObjectName("checkBox_4")

        self.checkBox_5 = QtWidgets.QCheckBox(self.centralwidget)

        self.checkBox_5.setGeometry(QtCore.QRect(22, 78, 101, 16))

        self.checkBox_5.setObjectName("checkBox_5")

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)

        self.pushButton.setGeometry(QtCore.QRect(120, 106, 75, 23))

        self.pushButton.setObjectName("pushButton")

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        self.pushButton.clicked.connect(self.getvalue)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def getvalue(self):

        oper="" # 记录用户权限

        if self.checkBox.isChecked(): # 判断复选框是否选中

            oper+=self.checkBox.text() # 记录选中的权限

        if self.checkBox_2.isChecked():

            oper +='\n'+ self.checkBox_2.text()

        if self.checkBox_3.isChecked():

            oper+='\n'+ self.checkBox_3.text()

        if self.checkBox_4.isChecked():

            oper+='\n'+ self.checkBox_4.text()

        if self.checkBox_5.isChecked():

            oper+='\n'+ self.checkBox_5.text()

        from  PyQt5.QtWidgets import QMessageBox

        # 使用information()方法弹出信息提示,显示所有选择的权限

        QMessageBox.information(MainWindow, "提示", "您选择的权限如下:\n"+oper, QMessageBox.Ok)

    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreapplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "设置用户权限"))

        self.checkBox.setText(_translate("MainWindow", "基本信息管理"))

        self.checkBox_2.setText(_translate("MainWindow", "进货管理"))

        self.checkBox_3.setText(_translate("MainWindow", "销售管理"))

        self.checkBox_4.setText(_translate("MainWindow", "库存管理"))

        self.checkBox_5.setText(_translate("MainWindow", "系统管理"))

        self.pushButton.setText(_translate("MainWindow", "设置"))

import sys

# 主方法,程序从此处启动PyQt设计的窗体

if __name__ == '__main__':

   app = QtWidgets.Qapplication(sys.argv)

   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象

   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象

   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置

   MainWindow.show() # 显示窗体

   sys.exit(app.exec_()) # 程序关闭时退出进程