Durante la scrittura di un'applicazione Qt è buona norma preferire le implementazioni delle funzioni Qt, i tipi di dati e le classi quando sono disponibili?

1

Sto appena iniziando con Qt e voglio davvero provare a mantenere la mia applicazione come separata da Qt possibile nel caso decida di usare un set di strumenti diverso in seguito, ma allo stesso tempo non voglio fare nessuna decisioni che paralizzeranno la mia domanda fin dall'inizio.

Durante la scrittura di un'applicazione Qt è considerata una buona pratica preferire sempre le implementazioni Qt quando sono disponibili? O in alcune situazioni è meglio attenersi al C ++ standard anche quando Qt ha un'alternativa?

Considera quanto segue ...

Implementazioni di funzioni:

Dovrei sempre preferire l'implementazione di una funzione Qt quando è disponibile? Prendi le funzioni matematiche per esempio ...

  • pow vs qPow
  • log vs qLn
  • ecc ...

Tipi di dati:

Devo sempre preferire i tipi di dati Qt sui valori predefiniti?

  • int32_t vs qint32
  • double vs qreal
  • ecc ...

oggetti:

Devo sempre preferire oggetti Qt rispetto ai loro equivalenti STL?

  • std::string vs QString
  • std::vector vs QVector

In ciascuna di queste situazioni quali sono i vantaggi / gli svantaggi. Cosa guadagnerò o perdere?

Più funzioni / oggetti basati su Qt uso più difficile sarebbe passare a qualcosa di diverso da Qt più tardi.

    
posta tjwrona1992 21.01.2018 - 19:51
fonte

1 risposta

4

Se esiste un equivalente esatto nello standard C ++ (come per i tipi di larghezza esatta o le funzioni matematiche), si perde la portabilità su qualsiasi progetto che non utilizza QT, senza ottenere nulla. E le persone potrebbero chiedersi quale sia la funzione / tipo / qualsiasi cosa faccia o faccia diversamente se non sono intimamente a conoscenza di QT.

Ci sono due ragioni per utilizzare tipi di oggetto QT come QString e QVector :

  1. Indipendenza dalla libreria C ++ che usi. Questo è solo un vantaggio se ti aspetti che abbia modifiche di rottura più frequenti di QT e non possa / non fornirà un aggiornamento.
  2. Aderenza all'interfaccia delle funzioni che usi.

Questi due punti si applicano al contrario all'utilizzo dei tipi standard.

    
risposta data 21.01.2018 - 20:22
fonte

Leggi altre domande sui tag