欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python & PyQt学习随笔:PyQt主程序的基本框架

程序员文章站 2022-04-12 09:53:19
...

在完成UI设计将UI通过PyUic转成Py文件后,由于这个生成的文件每次通过PyUic生成时都会被覆盖,因此应用的主程序必须另外单独编写py文件。需要将UI生成的文件import到主程序的py文件中。

主程序的代码框架包括:
一、import 相关类
包括UI对应的py文件,以及使用到的PyQt相关的模块,具体看应用的情况,但一般要将QtWidgets、QtGui 、QtCore 导入,如:

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import  Qt

二、根据UI类派生一个子类
在主程序中,需要根据UI对应类以及QtWidgets派生一个新类,在该新类中实现所有槽函数的代码。给个老猿写的案例:

class w_ReadExecl(QtWidgets.QWidget,Ui_Ui_tableView):#派生一个新类
    def __init__(self): #新类构造函数,必须有
        super(w_ReadExecl, self).__init__() #调用父类构造函数,必须有
        self.setupUi(self)  #进行图形界面初始化,必须有
              self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked | QtWidgets.QAbstractItemView.SelectedClicked)

    def showExcel(self): #按钮的槽函数
        filename = self.e_InputFileName.text()
        sheetname = self.inputSheetName.text()

        hashead = self.inputHasHead.isChecked()
        print(f"即将显示{filename}.[{sheetname }]"
		........

三、编写应用主代码
这部分主要是要遵循PyQt5主程序的通用规范代码,包括:
1、 创建应用实例:
app = QtWidgets.QApplication(sys.argv)
每一个pyqt程序必须创建一个application对象,sys.argv是命令行参数,可以通过命令启动的时候传递参数。
2、初始化主程序窗口并显示:

w= w_ReadExecl()
w.show()

注意: w是主窗口应用名字,可以为自己想要的名字。
3、 事件处理开始,进入程序主循环

sys.exit(app.exec_())

主循环程序的任务就是等待事件,并把事件通过信号和槽的连接关系发送给指定应用处理。当调用app.exit()或者程序因为各种原因被破坏后,使用sys.exit()关闭程序,并释放内存资源。exec_()方法有下划线,是因为exec是一个Python关键词。因此,在PyQt中使用exec_()代替。

4、一个最小的主程序代码参考如下:

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = w_ReadExecl()
    w.show()
    sys.exit(app.exec_())

Python & PyQt学习随笔:PyQt主程序的基本框架

博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

相关标签: Python PyQt