Domanda

Il solito modo per utilizzare i widget Qt da Python sembra essere quello di creare una sottoclasse di loro.

Qt classi di widget hanno un gran numero di metodi, quindi, inevitabilmente ho intenzione di finire l'aggiunta di un metodo per la sottoclasse, con lo stesso nome di uno ereditato dal widget Qt. In Python, tutti i metodi sono virtuali, quindi quello che mi preoccupa è che un certo codice Qt potrebbe finire per chiamare il mio metodo al posto del previsto Qt uno - nel peggiore dei casi, rompendo qualche caso limite che non mostra facilmente up in fase di test.

D'altra parte, forse tutti i metodi PyQt sono solo wrapper per il codice C ++, che sarebbe ovviamente influenzato da tutto ciò che faccio in termini di creazione di sottoclassi Python.

Qualcuno sa estemporaneo che è il caso?

È stato utile?

Soluzione

Se i metodi della underlaying C ++ sono virtuali, i vostri metodi Python che li sostituiscono saranno chiamati in qualsiasi momento codice C ++ li chiama. Se sono metodi appena regolari, qualsiasi codice C ++ chiamerà il C originale ++ metodi per impostazione predefinita (codice Python chiamerà i metodi di Python, però, perché vede l'oggetto Python e tutti i metodi sono "virtuali" lì).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top