Pergunta

A maneira usual de usar Qt de Python parece ser a subclasse-los.

Qt widgets classes têm um grande número de métodos, assim, inevitavelmente eu vou acabar adicionando um método para a subclasse, com o mesmo nome que um herdado a partir do widget Qt. Em Python, todos os métodos são virtual, então o que eu estou preocupado é que algum código Qt pode acabar chamando meu método em vez do Qt esperado um - no pior cenário, quebrando alguns casos borda que não mostra facilmente -se em testar.

Por outro lado, talvez todos os métodos PyQt são invólucros apenas para o código C ++, o que seria, evidentemente, não afetado por qualquer coisa que eu fazer em termos de Python subclasses.

Alguém sabe improviso que é o caso?

Foi útil?

Solução

Se os métodos do underlaying C ++ são virtuais, seus métodos de python que substituí-los vai ser chamado a qualquer momento código C ++ chama-los. Se eles são métodos apenas regular, qualquer código C ++ irá chamar os métodos originais C ++ por padrão (código Python irá chamar os métodos Python embora, porque ele vê o objeto Python e todos os métodos são "virtual" lá).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top