Sono abbastanza nuovo nell'usare il framework QT in combinazione con C++. Mi stavo chiedendo: è una buona idea basare le mie classi di dominio su QObject? O dovrei farlo solo per le classi più in alto nella gerarchia? (più vicino al livello dell'interfaccia utente). La documentazione QT non è chiaro su questo:QT: è una buona idea basare i miei oggetti di dominio su QObject?
recuperate dalla documentazione QT:
Il sistema di meta-oggetto è un'estensione C++ che rende il linguaggio più adatto alla vera programmazione componente GUI.
Ovviamente voglio costruire la mia applicazione in un modo ben strutturato. Negli ultimi giorni ho cercato la documentazione QT per trovare una risposta a questa domanda. Non voglio fare un errore elementare che renderà la mia applicazione inerte per tutta l'eternità ;-).
Ho già esaminato la documentazione di base per QObject e il modello Qt Object. Ho anche trovato un freshmeat article che mi ha aiutato ma non mi ha davvero aiutato a raggiungere una conclusione. Qualcos'altro che mi confonde è che il QT stesso non sembra essere coerente in questa materia perché non tutte le classi QT usano QObject come classe base.
I vantaggi di utilizzare QObject come classe base come li vedo:
- Gerarchia
- segnali e slot
- Proprietà
- Essere in grado di utilizzare i puntatori custoditi
- Internazionalizzazione
Tuttavia, non richiedo e ognuna di queste funzionalità nella maggior parte delle mie classi di dominio. C'è una regola di best practice per questo? O dovrebbe essere la regola: usala se hai bisogno di uno dei punti sopra menzionati?
La speranza non ho fatto questo :-) troppo confusa
QSharedPointer e QScopedPointer possono essere applicati a qualsiasi classe, che non sono esclusivi di classi QObject, lo stesso per l'internazionalizzazione, 'tr' è una funzione statica su QObject, in modo da poter utilizzare da qualsiasi luogo –