PyQt5-3個單窗體GUI專案模板
阿新 • • 發佈:2021-07-07
示例程式大部分只有一個窗體,並且採用視覺化方法設計窗體UI檔案。窗體的常用基類是QWidget、QDialog和QMainWindow。
· \dialogApp目錄,是一個主窗體基於QDialog的應用程式模板。
· \widgetApp目錄,是一個主窗體基於QWidget的應用程式模板。
· \mainWindowApp目錄,是一個主窗體基於QMainWindow的應用程式模板。
dialogApp專案模板
檔案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專案模板
# -*- 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專案模板
# -*- 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檔案裡編寫功能實現程式碼。
轉載請註明出處,歡迎討論和交流!