在PyQt中命名getter和属性

时间:2012-01-03 11:36:38

标签: python qt pyqt pyqt4

我有一个用PyQt4编写的自定义小部件:

class WRecordIdWidget(QtGui.QLineEdit):

    ....

    def model(self):
        return self._model
    def setModel(self, model):
        self._model = model
    model = QtCore.pyqtProperty(str, model, setModel)

我创建了一个名为model的pyqt属性 - 能够在Qt Designer中编辑它。

我根据Qt编码标准命名了getter model()。但是属性也被称为model,遮蔽了吸气剂。

因此Qt Designer将看到model属性,但我将无法再在Qt中调用getter - widget.model()将引发错误。我不知道C ++如何处理这个问题以及C ++ getter和Qt属性如何具有相同的名称。

我应该将吸气剂重命名为getModel()吗?然后它将不符合其他内置的'吸气剂...

1 个答案:

答案 0 :(得分:1)

重新命名。在执行model = QtCore.pyqtProperty(str, model, setModel)时,您正在使用类字典中的属性有效地替换getter,因此您将无法直接访问它。