欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PyQt5 中一些有用而不常见的方法

程序员文章站 2022-04-19 23:53:27
...

PyQt5 中一些有用而不常见的方法(陆续更新中)

在看 Qt 代码中 ,经常会看见 self.parent() 这种莫名其妙的方法出现 ,去检查 self 的父类中也见不到定义了 parent 方法 ,该方法主要定义在 QObject (相关的其他Qt 类也是可以的)类中 。

demo1

class ClientSocket(QObject)
class ServerClient(ClientSocket)
这样使得 ServerCliient的实例是可以调用 parent 方法

从下面的案例中 , 可知 parent 方法返回在构造函数中 为实例指定的 parent 参数 。

>>> from PyQt5.QtCore import QCoreApplication, QEvent, QObject, QSocketNotifier
>>> class A(QObject):
...     def __init__(slef, parent=None):
...         print(parent)
... 
>>> A.parent
<built-in function parent>
>>> A.parent()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: parent(self): first argument of unbound method must have type 'QObject'
>>> a = QObject()
>>> a
<PyQt5.QtCore.QObject object at 0x7f90aeb053a8>
>>> aa = A(parent=a)
<PyQt5.QtCore.QObject object at 0x7f90aeb053a8>
>>> a
<PyQt5.QtCore.QObject object at 0x7f90aeb053a8>