Domanda

Pro. e contro? per quanto tempo lo usi? Che dire di jambi?

È stato utile?

Soluzione

Ho usato Qt su un paio di progetti che ho fatto in c ++ su diverse piattaforme per un periodo di sette anni. Penso che funzioni abbastanza bene e sicuramente è stato più veloce per me sviluppare un'app GUI decente su Mac che sfogliare un linguaggio che non conoscevo (Objective-C) al momento.

Penso che il meccanismo di segnale / slot sia un po 'strano ma non è orribile. Una volta che lo usi per un po ', non è un tappo per lo spettacolo. La connessione è facile da risolvere (o almeno lo era) ed è sempre bene controllare il ritorno su quelli perché la tua app andrà allegramente sulla sua strada e non ti dirà che non ha funzionato.

Non ho mai usato Jambi.

Altri suggerimenti

Uso Qt da diversi anni ormai per lo sviluppo commerciale e ne sono rimasto molto soddisfatto.

Una delle cose carine di Qt è che fornisce un ampio set di librerie oltre a elementi della GUI (ad es. analisi XML, thread, reti), il tutto in uno stile coerente e tutto multipiattaforma. Ciò significa che raramente abbiamo bisogno di usare altre librerie, anche se per alcuni aspetti utilizziamo boost.

Un altro fattore molto importante per noi è stata l'internazionalizzazione. In una precedente applicazione basata su MFC dovevamo mantenere 2 versioni localizzate, per le due lingue supportate. Nella nostra app basata su Qt abbiamo solo una versione.

  • Il sistema di traduzione Qt, usando il linguista è facile da usare e semplifica il supporto di più lingue (ovviamente devi ancora tradurre le stringhe che richiedono molto lavoro!)
  • Il sistema di layout della GUI in cui i widget si ridimensionano in base a un layout rende tutto molto più semplice. In diverse lingue la lunghezza delle stringhe è diversa. Con widget di dimensioni fisse (come MFC), ogni finestra di dialogo deve essere regolata per ogni lingua, altrimenti parti di etichette vengono tagliate. Con Qt si ridimensionano. Certo, ci sono casi in cui non funziona esattamente bene ma rende ancora tutto molto più semplice.
  • QString fa tutto in Unicode e gestisce le conversioni da diversi codec molto facilmente.

Una cosa che è stata molto preziosa è l'accesso alla fonte, anche se questo non è certamente unico per Qt. In diverse occasioni la capacità di controllare la fonte di Qt ha spiegato alcuni comportamenti strani o dato un indizio su come ottenere qualcosa.

Abbiamo trovato alcuni bug in Qt, alcuni dei quali sono stati corretti dopo aver segnalato a Trolltech. In altri casi hanno suggerito di aggirare il problema. Questi sono stati tutti abbastanza oscuri e non hanno avuto un grande impatto sul nostro sviluppo.

Uno dei principali aspetti negativi di Qt sarebbe la mancanza di librerie di terze parti da utilizzare in applicazioni commerciali. Tuttavia, Qt è abbastanza completo, quindi per noi non è stato un grosso problema, anche se dipenderà dal tipo di applicazione che stai sviluppando.

Neanche io ho usato Jambi.

Ecco alcuni dei miei pro e contro con Qt:

Pro:
Cross-platform
So che questo è sempre usato, ma dopo essere andato avanti e indietro tra Windows e Linux con Qt, è incredibile quanto poco devo fare per iniziare a funzionare. Penso che ciò sia aiutato dal fatto che utilizzo Vim solo con Qt Designer.

QMake
Questo è uno dei miei aspetti preferiti di Qt. Dopo aver lavorato in wxWidgets, FLTK, ecc., Sono così stanco di fare casino con diversi sistemi di compilazione e non voglio creare manualmente i miei makefile. Attualmente uso CMake su qualsiasi cosa diversa da Qt in questo momento, ma penso che sto lentamente spostando anche Qt su CMake. Tuttavia, è così facile iniziare con QMake.

QTestLib
Ho esaminato un paio di altri framework di test delle unità C ++ e quando ho creato i miei test utilizzando QTestLib, mi è sembrato molto simile a NUnit (C #) e in pochi minuti ho avuto diversi test di superamento. Ho anche notato che sarebbe molto semplice creare il mio ambiente integrazione continua .
Più vicino a Java e .Net in termini di produttività
La cosa più grande che sento dire / leggere la gente su C ++ è, "posso essere più produttivo con Java o .Net". Per esperienza personale posso ottenere un prototipo di un'applicazione in esecuzione in Qt usando Vim e Qt Designer, prima ancora che Eclipse o Visual Studio vengano caricati. Ho anche un set molto simile di librerie in Qt che ho in .Net o Java e se non è lì posso sfruttare il codice C ++ esistente là fuori.


Contro :
Prezzo
Questo è il fattore più grande che mi viene in mente in questo momento. Tuttavia, il costo vale ogni centesimo, um se sapessi quanti centesimi avrei dovuto risparmiare senza chiamare un rappresentante di vendita. Ho acquistato una licenza nel giorno in cui avevano lo sconto per le piccole imprese e ne è valsa la pena, avrei pagato tre volte tanto e penso che sia il prezzo attuale.

Sviluppa ovunque con la licenza commerciale
Mi piacerebbe essere in grado di sviluppare su qualsiasi piattaforma, ma costruire e vendere per un'altra piattaforma. Ad esempio, sviluppare su Linux, quindi compilare e distribuire su Windows se si dispone solo della licenza commerciale di Windows. Da quello che so, puoi solo sviluppare e costruire un'applicazione commerciale sulla piattaforma per la quale hai una licenza.

Blocco del fornitore
Bene, questo è più un aspetto personale. Non mi piace essere legato a un fornitore specifico perché sono seguito dalla direzione dell'azienda e dalla direzione del prodotto. TrollTech è stato acquistato da Nokia, è una cosa buona o cattiva non lo so, ma un'azienda di quelle dimensioni può fare cose cattive.


Penso di aver finito per ora :). Oh, non ho usato Jambi ma sono davvero interessato a realizzare un paio di progetti prototipo per scoprire quanto sia facile usare un plugin sviluppato in C ++ con Jambi. Soprattutto usando Jambi come interfaccia web con plugin C ++.

Ad essere sincero, non ne ho letto molto, quindi potrebbe essere impossibile o molto semplice.

Ho usato Qt in un precedente lavoro. Avevo avuto il contatto assolutamente breve con Qt diversi anni prima, quindi ero praticamente un novellino di Qt.

Quando ho iniziato mi è stato detto di scegliere la mia lingua e il mio ambiente, ma era auspicabile un supporto multipiattaforma. Ho provato Qt e Java, e ho anche provato C # solo per diamine. Mi sono concesso due giorni per valutare ciascuna opzione.

Forse sono stato leggermente distorto con la mia storia di sviluppatore C ++, ma dopo aver trascorso del tempo su ogni opzione Qt era l'unica a mostrare qualche suggerimento per essere utile senza una lunga curva di apprendimento.

La documentazione fornita con Qt e le applicazioni di esempio hanno reso molto facile per uno sviluppatore esperto, ma per i principianti di Qt iniziare a lavorare molto rapidamente. Ho avuto prototipo / prototipi dell'interfaccia utente dell'applicazione finale entro la fine del mio periodo di prova. Con Java / Eclipse, Java / SunStudio e C # / VS.net ho avuto problemi a ottenere qualcosa di non banale in quel momento.

I segnali / slot hanno richiesto un po 'di tempo per abituarsi, ma non era poi così male, e ho scritto alcuni semplici wrapper per affermare che le connessioni non riuscivano a fermare gli errori di battitura che impedivano l'app. dal lavoro.

L'altra cosa che mi è piaciuta è che Qt aveva quasi tutto ciò di cui avevo bisogno. Lo chiami - storage, networking, GUI, threading, container - Qt ha una classe per gestirlo. Quale IMHO è importante perché il missaggio delle librerie a volte può causare problemi.

Avere il codice sorgente su Qt è stato un grande vantaggio, uno per il solo interesse, ma mi ha anche permesso di compilare Qt usando il compilatore e le impostazioni di mia scelta, inclusa una versione di debug da usare durante lo sviluppo.

Ho anche trovato il supporto di Trolltech abbastanza buono. Ho sollevato un paio di bug su Qt, uno dei quali è stato corretto e rilasciato mentre stavo ancora lavorando al progetto (solo un lavoro di 6 mesi).

L'unico aspetto negativo che ricordo è la difficoltà nel debug degli oggetti Qt (usando VS) - c'è un plugin Qt per VS che può esaminare oggetti Qt ma stavo usando la versione gratuita di VS e i plugin non funzionano per questo . Ma non è stata colpa di Qt.

Non ho usato Jambi quindi non posso commentare.

Su C ++ le tue uniche alternative sono MFC e wxWidgets. QT / wxWidgets è in gran parte una preferenza personale. Penso che QT sia un design pulito con una buona documentazione.
QT costa circa un mese di stipendio per gli sviluppatori se non lo si utilizza per GPL.

Uso Qt da oltre due anni.

Le cose che mi piacciono su Qt sono:

  • Facile programmazione della GUI (rispetto a MFC), Qt Designer
  • Belle classi di contenitori
  • Bel quadro di scene grafiche
  • Ottima documentazione con esempi utili
  • Supporto per la traduzione
  • Buon supporto tecnico

Consiglio vivamente i Qt Developer Days . Se hai la possibilità di partecipare, fallo! Ci sono un sacco di chiacchiere interessanti e molto interessanti lì.

Qt è una libreria molto bella, ma ha una costosa licenza per sviluppatore per posto, quindi non è sempre utile per tutti i progetti.

Non usarlo, tuttavia ...

Pro: QT ha un layout a 3 fasi opzionale, dove attualmente WX ne consente solo 2 (credo che stiano pianificando di fare 3 fasi, ma non ci sono ancora riuscito).

Uno dei maggiori problemi nell'uso dei layout è il testo statico e il wrapping. WX ti chiede quanto è grande la tua larghezza / altezza min e le porzioni fuori dallo schermo, QT ha un'opzione per dire quanto vuoi che larghezza, quanto devi essere alto se la tua X è larga. Ciò ti consente di esprimere molto meglio il flusso di una pagina.

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