Именование геттеров и свойств в PyQt - PullRequest
2 голосов
/ 03 января 2012

У меня есть собственный виджет, написанный на PyQt4:

class WRecordIdWidget(QtGui.QLineEdit):

    ....

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

Я создал свойство pyqt под названием model - чтобы иметь возможность редактировать его в Qt Designer.

Я назвал получатель model() в соответствии со стандартами кодирования Qt. Но свойство также называется model, скрывая геттер.

Таким образом, Qt Designer увидит свойство model, но я больше не смогу вызывать метод получения в Qt - widget.model () вызовет ошибку. Я не знаю, как C ++ справляется с этим и как в C ++ методы получения и свойства Qt имеют одинаковые имена.

Должен ли я просто переименовать получатель в getModel()? Тогда он не будет соответствовать другим «встроенным» геттерам ...

1 Ответ

1 голос
/ 03 января 2012

Просто переименуйте его.При выполнении model = QtCore.pyqtProperty(str, model, setModel) вы фактически заменяете метод получения свойством в словаре класса, поэтому вы просто теряете прямой доступ к нему.

...