【发布时间】:2012-05-19 20:46:24
【问题描述】:
我正在尝试从rapid gui programming with python and qt 自己学习PyQt,但无法理解书中示例之一中提到的以下代码行的meaning/requirement。
class Form(QDialog):
def __init__(self,parent=None):
super(Form,self).__init__(parent) # Trouble understanding here
所以,我的问题是 super(Form,self).__init__(parent) 的需求是什么,或者它试图完全填充 in this code 的目的是什么。
【问题讨论】:
-
实际上
__init__()在这种情况下显得毫无意义......这是该方法中存在的唯一代码吗? -
没有,我附上完整代码pastie.org/3937058
-
啊,我明白了。这里
super(...)...的目的是调用QDialog的构造函数。 -
@JoelCornett:但是我们为什么要调用 QDialog 的构造函数,它将完全满足什么目的。
-
QDialog是对话框的基类。QDialog.__init__()包含生成新 QDialog 对象所需的所有代码。由于Form用它自己的__init__()“覆盖”了原来的QDialog.__init__(),它需要显式调用QDialog.__init__()以确保代码被执行。