添加应用程序图标
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 中,用户定义的函数可以使用四种不同类型的参数。
- 默认参数:
-
功能定义
def defaultArg( name, msg = "Hello!"):
-
函数调用
defaultArg( name)
- 必需参数:
-
功能定义
def requiredArg (str,num):
-
功能调用:
requiredArg ("Hello",12)
- 关键字参数:
-
功能定义
def keywordArg( name, role ):
-
函数调用
keywordArg( name = "Tom", role = "Manager")
要么
keywordArg( role = "Manager", name = "Tom")
- 可变数量的参数:
-
功能定义
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_())
创建应用程序和示例对象。主循环开始。