新增應用程式圖示

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon

class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))        
    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_()) 

分析

Python 中的函式引數

在 Python 中,使用者定義的函式可以使用四種不同型別的引數。

  1. 預設引數:
  • 功能定義

    def defaultArg( name, msg = "Hello!"):

  • 函式呼叫

    defaultArg( name)

  1. 必需引數:
  • 功能定義

    def requiredArg (str,num):

  • 功能呼叫:

    requiredArg ("Hello",12)

  1. 關鍵字引數:
  • 功能定義

    def keywordArg( name, role ):

  • 函式呼叫

    keywordArg( name = "Tom", role = "Manager")

    要麼

    keywordArg( role = "Manager", name = "Tom")

  1. 可變數量的引數:
  • 功能定義

    def varlengthArgs(*varargs):

  • 函式呼叫

    varlengthArgs(30,40,50,60)

class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        ...

物件導向程式設計中的三個重要事項是類,資料和方法。在這裡,我們建立了一個名為 Example 的新類。Example 類繼承自 QWidget 類。這意味著我們呼叫兩個建構函式:第一個用於 Example 類,第二個用於繼承類。super() 方法返回 Example 類的父物件,我們呼叫它的建構函式。self 變數指的是物件本身。

為什麼我們用 __init__

看一下這個:

class A(object):
    def __init__(self):
        self.lst = []

class B(object):
    lst = []

現在嘗試:

>>> x = B()
>>> y = B()
>>> x.lst.append(1)
>>> y.lst.append(2)
>>> x.lst
[1, 2]
>>> x.lst is y.lst
True

還有這個:

>>> x = A()
>>> y = A()
>>> x.lst.append(1)
>>> y.lst.append(2)
>>> x.lst
[1]
>>> x.lst is y.lst
False

這是否意味著在例項化之前建立了 B 類中的 x?

是的,它是一個類屬性(它在例項之間共享)。而在 A 類中,它是一個例項屬性。

self.initUI() 

GUI 的建立委託給 initUI() 方法。

self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('web.png'))  

這三種方法都是從 QWidget 類繼承而來的。setGeometry() 做了兩件事:它在螢幕上定位視窗並設定它的大小。前兩個引數是視窗的 x 和 y 位置。第三個是寬度,第四個是視窗的高度。事實上,它在一種方法中結合了 resize()move() 方法。最後一個方法設定應用程式圖示。為此,我們建立了一個 QIcon 物件。QIcon 接收要顯示的圖示的路徑。

if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

建立應用程式和示例物件。主迴圈開始。