PyQt5-3个单窗体GUI项目模板

示例程序大部分只有一个窗体,并且采用可视化方法设计窗体UI文件。窗体的常用基类是QWidget、QDialog和QMainWindow。

· \dialogApp目录,是一个主窗体基于QDialog的应用程序模板。

· \widgetApp目录,是一个主窗体基于QWidget的应用程序模板。

· \mainWindowApp目录,是一个主窗体基于QMainWindow的应用程序模板。

dialogApp项目模板

image
image
image

文件myDialog.py是与Dialog.ui对应的窗体业务逻辑类QmyDialog所在的文件,这个文件的内容如下:

# -*- coding:utf-8-*-
import sys
from PyQt5.QtWidgets import QApplication,QDialog
##from PyQt5.QtCore import pyqtSlot,pyqtSignal,Qt
##from PyQt5.QtWidgets import
##from PyQt5.QtGui import
##from PyQt5.QtSql import
##from PyQt5.QtMultimedia import
##from PyQt5.QtMultimediaWidgets import
from ui_Dialog import Ui_Dialog
class QmyDialog(QDialog):
    def __init__(self,parent=None):
        super().__init__(parent) #调用父类构造函数,构建窗体
        self.ui=Ui_Dialog #创建UI对象
        self.ui.setupUi(self) #构建UI

    ##==========自定义功能函数===========
    ##==========事件处理函数============
    ##==========由connectSlotsByName()自动关联的槽函数======
    ##==========自定义槽函数===========
    ##==========窗体测试程序===========
    if __name__=="__main__": ##用于当前窗体测试
        app=QApplication(sys.argv) #创建GUI应用程序
        form=QmyDialog() #创建窗体
        from.show()
        sys.exit(app.exec_())

这个文件里定义了窗体业务逻辑类QmyDialog,在构造函数里已经有创建窗体的代码。QmyDialog的代码分为几部分,分别用于添加各种函数代码。

文件myDialog.py里还有窗体测试程序,所以可以直接运行myDialog.py文件以测试QmyDialog类的功能。

文件appMain.py是将文件myDialog.py中的窗体测试部分的程序单独拿出来作为一个文件。在具有多个窗体的GUI项目里,appMain.py文件的代码创建主窗体然后运行应用程序。

widgetApp项目模板

image

# -*- coding:utf-8-*-
import sys
from PyQt5.QtWidgets import QApplication,QWidget
##from PyQt5.QtCore import pyqtSlot,pyqtSignal,Qt
##from PyQt5.QtWidgets import
##from PyQt5.QtGui import
##from PyQt5.QtSql import
##from PyQt5.QtMultimedia import
##from PyQt5.QtMultimediaWidgets import
from ui_Widget import Ui_Widget
class QmyDialog(QWidget):
    def __init__(self,parent=None):
        super().__init__(parent) #调用父类构造函数,构建窗体
        self.ui=Ui_Widget #创建UI对象
        self.ui.setupUi(self) #构建UI

    ##==========自定义功能函数===========
    ##==========事件处理函数============
    ##==========由connectSlotsByName()自动关联的槽函数======
    ##==========自定义槽函数===========
    ##==========窗体测试程序===========
    if __name__=="__main__": ##用于当前窗体测试
        app=QApplication(sys.argv) #创建GUI应用程序
        form=QmyWidget() #创建窗体
        from.show()
        sys.exit(app.exec_())

mainWindowApp项目模板

image

# -*- coding:utf-8-*-
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
##from PyQt5.QtCore import pyqtSlot,pyqtSignal,Qt
##from PyQt5.QtWidgets import
##from PyQt5.QtGui import
##from PyQt5.QtSql import
##from PyQt5.QtMultimedia import
##from PyQt5.QtMultimediaWidgets import
from ui_MainWindow import Ui_MainWindow
class QmyMainWindow(QMainWindow):
    def __init__(self,parent=None):
        super().__init__(parent) #调用父类构造函数,构建窗体
        self.ui=Ui_MainWindow #创建UI对象
        self.ui.setupUi(self) #构建UI

    ##==========自定义功能函数===========
    ##==========事件处理函数============
    ##==========由connectSlotsByName()自动关联的槽函数======
    ##==========自定义槽函数===========
    ##==========窗体测试程序===========
    if __name__=="__main__": ##用于当前窗体测试
        app=QApplication(sys.argv) #创建GUI应用程序
        form=QmyMainWindow() #创建窗体
        from.show()
        sys.exit(app.exec_())

使用项目模板和实例源程序

本书的示例程序都使用IDLE编写和运行,这3个项目模板中的uic.bat完全控制了窗体UI文件和资源文件到Python文件的编译过程,当UI文件多于一个,或UI文件名不同于模板中的UI文件名时,直接修改uic.bat文件的内容即可。

PyQt5应用程序的开发主要有两项工作内容:一项是窗体的UI设计,这主要在UI Designer里可视化设计完成;另一项是对应的窗体业务逻辑类的功能实现,也就是在3个项目模板的myDialog.py、myWidget.py和myMainWindow.py文件里编写功能实现代码。

posted @ 2021-07-07 10:02  司砚章  阅读(384)  评论(0编辑  收藏  举报