一 前言
經過前面一篇QT入門文章,讀者應該對QT有個簡單的概念,本篇文章指在將窗口和業務邏輯分離開來,降低耦合度;
知識追尋者(Inheriting the spirit of open source, Spreading technology knowledge;)
二 分離代碼
-
首先使用面向對象的思想,繼承QWidget,如果多組件,可以使用多繼承;
def __init__(self, parent=None): super().__init__(parent)
-
其次定義號初始化gui的內容,將gui方法放入構造器裏面初始化;
-
最後在_main_中調用即可,就實現了界面與業務邏輯分離
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
""" 帶窗口圖標"""
class Windos(QWidget):
def __init__(self):
# 繼承父類方法
super().__init__()
# 初始化gui
self.init_gui()
def init_gui(self):
# 設置彈出窗口的位置和大小,相當於move + resize
self.setGeometry(500, 500, 250, 300)
# 設置標題
self.setWindowTitle('知識追尋者')
# 設置窗口圖標
self.setWindowIcon(QIcon('zszxz.png'))
# 顯示
self.show()
if __name__ == '__main__':
# 基礎模塊
app = QApplication(sys.argv)
# 調用對象
ex = Windos()
# 循環退出
sys.exit(app.exec_())
顯示如下,主流都是單繼承