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?

War es hilfreich?

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top