Domanda

Attualmente manteniamo una serie di applicazioni MFC che sono abbastanza ben progettate, tuttavia l'interfaccia utente comincia a sembrare stanca e gran parte del codice necessita di un bel po' di refactoring per sistemare alcuni problemi di duplicazione e/o prestazioni.Utilizziamo numerosi controlli personalizzati che gestiscono tutti i propri disegni (tutti scritti utilizzando MFC).

Recentemente ho svolto ulteriori ricerche su Qt e sui vantaggi che offre (multipiattaforma e supporta quello che potresti definire un framework dall'aspetto più "professionale" per lo sviluppo dell'interfaccia utente).

La mia domanda è - quale sarebbe l'approccio migliore per passare al framework Qt?Qt funziona bene con MFC?Sarebbe meglio iniziare a trasferire alcuni dei nostri controlli personalizzati su Qt e integrarli gradualmente sempre di più nelle nostre app MFC esistenti?(È possibile?).

Qualsiasi consiglio o esperienza precedente è apprezzata.

È stato utile?

Soluzione

Nella mia azienda stiamo attualmente utilizzando Qt e ne siamo molto soddisfatti.

Personalmente non ho mai dovuto spostare un'app MFC per utilizzare il framework Qt, ma ecco qualcosa che potrebbe interessarti:

Framework di migrazione Qt/MFC

Framework di migrazione Qt/MFC

Fa parte di Qt-Solutions, quindi questo significa che dovrai acquistare una licenza Qt insieme a una licenza Qt-Solutions.(modificare: non più)

Spero che aiuti !

Altri suggerimenti

(Questo non risponde davvero alle tue domande specifiche ma ...) Non ho usato personalmente QT, ma non è gratuito per lo sviluppo di finestre commerciali.

Hai guardato? wxWindows quale è gratuito?Bell'articolo Qui.Per inciso, se desideri un'unica base di codice per tutte le piattaforme, potresti dover migrare da MFC: sono abbastanza sicuro (qualcuno correggerà se sbagliato) che MFC è destinato solo a Windows.

Un'altra opzione sarebbe quella di guardare il Aggiornamento del pacchetto funzionalità a MFC in SP1 di VS2008: include l'accesso a nuovi controlli, inclusi i controlli della barra multifunzione in stile Office.

È un problema complicato e sospetto che la risposta dipenda da quanto tempo hai.Otterrai un risultato molto migliore se trasferisci i tuoi controlli personalizzati su Qt: se usi le classi QStyle per eseguire il disegno vero e proprio, ti ritroverai con un codice in grado di gestire i temi immediatamente pronto all'uso.

In generale, il mio consiglio sarebbe di stringere i denti e fare tutto in una volta.Certo, potrebbe volerci più tempo, ma l'alternativa è passare un'età cercando di eseguire il debug del codice che non lo fa abbastanza giocare a palla e finire per scrivere più codice per gestire piccole incompatibilità tra i due sistemi (ci sono stato, l'ho fatto).

Quindi, per riassumere, il mio consiglio è di avviare un ramo, estrarre tutto il vecchio codice MFC e sostituirlo con Qt.Otterrai l'indipendenza dalla piattaforma (quasi) gratuitamente e, anche se ci vorrà un po', alla fine ti ritroverai con un prodotto molto migliore.

Un ultimo avvertimento:assicurati di prenderti il ​​tempo per comprendere il "modo Qt di fare le cose" - in alcuni casi può essere molto diverso dall'approccio MFC - l'ultima cosa che vuoi fare è finire con un codice Qt in stile MFC.

Ho già guidato un team che faceva questo genere di cose (non da MFC a QT ma i principi dovrebbero funzionare).

Per prima cosa abbiamo documentato i dialoghi e quali fossero i loro input, controlli e output.Inoltre, creiamo diversi casi di test soprattutto per qualsiasi logica intelligente all'interno della GUI.

A volte abbiamo dovuto rifattorizzare alcune logiche aziendali per fornire un'interfaccia pulita alle GUI, ma questo è il modo in cui avrebbe dovuto essere fatto in primo luogo, a dire il vero.

Ora avevamo un elenco di GUI, input, output, test e un'interfaccia che la GUI incapsulata doveva corrispondere.

Abbiamo iniziato, progetto dopo progetto, a creare GUI equivalenti a quelle vecchie.Una volta fatto ciò, abbiamo potuto inserire la GUI dove si trovava quella vecchia, ricostruirla e testarla.All'inizio inciampavamo spesso, ma presto abbiamo individuato gli errori comuni e li abbiamo risolti.Abbiamo navigato (credo) in 612 finestre di dialogo, anche se c'era un team di circa una dozzina di persone che ci lavorava.

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