[PyQT5]初体验-编译ui文件-自定义槽函数

原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:https://blog.csdn.net/humanking7/article/details/80403189


  • Step1. 用Qt Designer设计一个想要的UI
  • Step2. 用pyuic5编译为py文件
  • Step3. 继承一个dlg类
  • Step4. show之


Step1. 用Qt Designer设计一个想要的UI

[PyQT5]初体验-编译ui文件-自定义槽函数_第1张图片

Step2. 用pyuic5编译为py文件

运行cmd执行命令

> pyuic5 dlg_UI.ui > dlg_UI.py

# 也有下面这样的方式 {没有测试过}
> pyuic5 -o dlg_UI.py dlg_UI.ui 
# 其中,-o [输出文件的名称] [生成的ui文件的名称]

此时我们得到了dlg_UI.py文件

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

# Form implementation generated from reading ui file 'dlg_UI.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(740, 294)
        self.tableWidget = QtWidgets.QTableWidget(Dialog)
        self.tableWidget.setGeometry(QtCore.QRect(50, 81, 601, 171))
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(4)
        self.tableWidget.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(3, item)
        self.btn_GetFile = QtWidgets.QPushButton(Dialog)
        self.btn_GetFile.setGeometry(QtCore.QRect(330, 20, 75, 23))
        self.btn_GetFile.setObjectName("btn_GetFile")
        self.edit_dir = QtWidgets.QLineEdit(Dialog)
        self.edit_dir.setGeometry(QtCore.QRect(50, 20, 271, 20))
        self.edit_dir.setReadOnly(True)
        self.edit_dir.setObjectName("edit_dir")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        item = self.tableWidget.horizontalHeaderItem(0)
        item.setText(_translate("Dialog", "选择"))
        item = self.tableWidget.horizontalHeaderItem(1)
        item.setText(_translate("Dialog", "路径"))
        item = self.tableWidget.horizontalHeaderItem(2)
        item.setText(_translate("Dialog", "文件编码"))
        item = self.tableWidget.horizontalHeaderItem(3)
        item.setText(_translate("Dialog", "转换编码"))
        self.btn_GetFile.setText(_translate("Dialog", "获取文件"))

Step3. 继承一个dlg类

from dlg_UI import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *


class listDlg(QDialog):
    def __init__(self, name="Dlg"):
        # 构造函数
        super().__init__()
        self.initUI(name)
        self.cnt_tmp = 0


    def initUI(self, name):
        # 初始化函数
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.setWindowTitle(name)
        self.initConnect()



    def initConnect(self):
        # 初始化信号与槽
        self.ui.btn_GetFile.clicked.connect(self.slot_btn_getFile)
        pass


    def setDirEditText(self, str_show):
        # 更新edit的文本
        self.ui.edit_dir.setText( str_show )

    # ######################
    #        槽函数
    # ######################

    def slot_btn_getFile(self):
        #btn_getFile的槽函数
        self.cnt_tmp = self.cnt_tmp + 1
        self.setDirEditText(str(self.cnt_tmp))

        pass

Step4. show之

这就是主函数了


from listDlg import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys

if __name__ == '__main__':
    app = QApplication( sys.argv )
    dlg = listDlg('转换文件编码')
    dlg.show()
    sys.exit(app.exec_())
    pass

[PyQT5]初体验-编译ui文件-自定义槽函数_第2张图片


赞赏码

你可能感兴趣的:(Python,Python学习与总结)