Pregunta

La forma más habitual el uso de componentes Qt desde Python parece ser una subclase ellos.

clases de widget

Qt tienen un gran número de métodos, por lo que, inevitablemente, voy a terminar la adición de un método para la subclase, con el mismo nombre que una heredada desde el widget de Qt. En Python, todos los métodos son virtuales, así que lo que me preocupa es que algún código Qt podría terminar llamando a mi método en lugar de la esperada Qt uno - en el peor de los casos, romper algunos caso extremo que no muestra la facilidad en la prueba.

Por otro lado, tal vez todos los métodos de PyQt son sólo contenedores para el código C ++, lo que por supuesto se verá afectada por cualquier cosa que hago en términos de Python subclases.

Alguien sabe de improviso, que es el caso?

¿Fue útil?

Solución

Si el subyacente C ++ métodos son virtuales, sus métodos de Python que les anulan serán llamados en cualquier momento código C ++ los llama. Si son métodos que se acaban regulares, cualquier código C ++ llamará al original de C ++ métodos por defecto (código Python llamará a los métodos de Python, sin embargo, ya que considera que el objeto Python y todos los métodos son "virtual" allí).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top