PyQt Subklassifizieren
Frage
Der üblicher Weg Qt-Widgets von Python zu verwenden, scheint sie zu sein, Unterklasse.
Qt Widget-Klassen haben sehr viele Methoden, so unweigerlich am Ende werde ich eine Methode, um die Unterklasse hinzufügen, mit dem gleichen Namen wie eine aus dem Qt-Widget geerbt. In Python sind alle Methoden virtuell, so was ich bin besorgt darüber, dass einiger Code Qt könnte meine Methode anstelle der erwarteten Qt eines Ende Aufruf - im schlimmsten Fall, einige Ränder Fall zu brechen, die nicht leicht zeigen up in Tests.
Auf der anderen Seite, vielleicht alle PyQt Methoden sind Wrapper nur für C ++ Code, was natürlich durch nichts davon unberührt würde ich im Hinblick auf die Python Subklassifizieren tun.
Wer weiß, offhand was der Fall ist?
Lösung
Wenn die Unterlegung C ++ Methoden virtuell sind, Ihre Python-Methoden, die sie außer Kraft gesetzt werden jederzeit C aufgerufen werden ++ Code ruft sie. Wenn sie nur reguläre Methoden sind, jede C ++ Code wird die ursprüngliche C ++ Methoden standardmäßig aufrufen (Python-Code wird die Python-Methoden aufrufen, obwohl, weil es die Python-Objekt sieht und alle Methoden sind „virtuelle“ dort).