【Python】【界面】+Pyqt5 快速开始(demo)

参考教程:https://www.cnblogs.com/lovesoo/p/12491361.html

1、创建UI文件

2、UI文件转换为python文件

3、转换后的python文件

from PyQt5 import QtCore, QtGui, QtWidgets


# 此文件仅修改触发的方法即可(如:accept 修改为 test_a)
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(646, 696)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(270, 320, 191, 111))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        self.pushButton.clicked.connect(Dialog.test_a)  # 修改为触发的方法
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.pushButton.setText(_translate("Dialog", "1"))

4、新建控制层代码

import sys

from PyQt5.QtWidgets import QApplication, QDialog

from common.pyqt import test
from common.pyqt.luoji import LuoJi


class MyDialog(QDialog):
    """
    此类为新建的类(UI窗体是什么就继承什么 这里是Dialog 就继承QDialog)
    主要功能:
        1、程序启动
        2、充当界面与后端连接的桥梁
    """

    def __init__(self, parent=None):
        super(QDialog, self).__init__(parent)
        self.ui = test.Ui_Dialog()  # test.Ui_Dialog() test:为ui文件转换后的python文件
        self.ui.setupUi(self)

    def test_a(self):
        """
        点击按钮触发的函数
        """
        # step1 获取界面数据
        value = int(self.ui.pushButton.text())  # 获取按钮文本
        
        # step2 界面数据传给后台数据逻辑处理层
        result = LuoJi.number_add(value)
        
        # step3 处理后的数据 反馈给界面
        self.ui.pushButton.setText(str(result))  # 设置按钮文本(在原来的数字值上+1)


# 以下代码基本不用修改
if __name__ == '__main__':
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)  # 加上这句(运行后 与设计师里的一样)
    my_app = QApplication(sys.argv)
    myDlg = MyDialog()
    myDlg.show()
    sys.exit(my_app.exec_())

5、后台数据逻辑处理层

class LuoJi:
    @staticmethod
    def number_add(value: int):
        """
        入参加一
        :param value:
        :return:
        """
        return value + 1
原文地址:https://www.cnblogs.com/danhuai/p/13975496.html