添加应用程序图标

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_())

创建应用程序和示例对象。主循环开始。