Подклассы PyQt - PullRequest
       14

Подклассы PyQt

4 голосов
/ 01 декабря 2009

Обычный способ использовать виджеты Qt из Python - это создать их подклассы.

В классах виджетов Qt очень много методов, поэтому я неизбежно добавлю метод к подклассу с тем же именем, которое унаследовано от виджета Qt. В Python все методы являются виртуальными, поэтому меня беспокоит то, что некоторый код Qt может в конечном итоге вызвать мой метод вместо ожидаемого Qt - в худшем случае, если сломать какой-то крайний случай, который нелегко показать в тестировании.

С другой стороны, возможно, все методы PyQt являются просто обертками для кода C ++, что, конечно, не будет зависеть от всего, что я делаю с точки зрения подклассов Python.

Кто-нибудь знает, что это за дело?

1 Ответ

3 голосов
/ 01 декабря 2009

Если нижележащие методы C ++ являются виртуальными, ваши методы Python, которые переопределяют их, будут вызываться каждый раз, когда код C ++ вызывает их. Если они являются обычными методами, любой код C ++ будет вызывать исходные методы C ++ по умолчанию (хотя код Python будет вызывать методы Python, поскольку он видит объект Python и все методы там «виртуальны»).

...