Question

La façon habituelle d'utiliser des widgets Qt de Python semble être les sous-classe.

classes de widget Qt ont un grand nombre de méthodes, alors forcément je vais finir par ajouter une méthode à la sous-classe, avec le même nom que celle héritée du widget de Qt. En Python, toutes les méthodes sont virtuelles, donc ce que je suis préoccupé est que du code Qt pourrait finir par appeler ma méthode au lieu de l'attendu Qt un - dans le pire scénario, brisant certains cas, de bord qui ne montre pas facilement dans les tests.

D'autre part, peut-être toutes les méthodes PyQt ne sont que des wrappers pour le code C ++ qui serait bien sûr pas affecté par tout ce que je fais en termes de Python subclassing.

Quelqu'un sait désinvolture qui est le cas?

Était-ce utile?

La solution

Si les méthodes C ++ underlaying sont virtuelles, vos méthodes de Python qui les remplacent sont appelés tout temps le code C ++ les appelle. Si elles ne sont que des méthodes régulières, tout code C ++ appellera les méthodes C ++ d'origine par défaut (code Python appellera les méthodes Python cependant, car il voit l'objet Python et toutes les méthodes sont « virtuelles » là-bas).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top