我有一个用 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,隐藏 getter。
所以 Qt Designer 将看到 model 属性,但我将无法再在 Qt 中调用 getter - widget.model() 将引发错误。我不知道 C++ 如何处理这个问题,也不知道在 C++ 中,getter 和 Qt 属性如何具有相同的名称。
我应该将 getter 重命名为 getModel() 吗?那么它就不会与其他'内置'的getter保持一致......
请您参考如下方法:
只需重命名即可。在执行 model = QtCore.pyqtProperty(str, model, setModel) 时,您实际上是用类字典中的属性替换了 getter,因此您只是失去了对它的直接访问权限。
