Usi Qt e perché lo usi?


23

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

10

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 decente GUI sul Mac piuttosto che arrancare in un linguaggio che non conoscevo (Objective-C) al momento.

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

Non ho mai usato jambi.


0

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

+2

Qt non è una libreria, è un framework. 20 dic. 142014-12-20 03:32:34


3

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

+1

Ovviamente ci sono altre opzioni oltre a MFC e wxWidgets! Ad esempio, c'è WTL! 24 set. 082008-09-24 06:04:31

  0

WTL è piuttosto abandonware ed è troppo vicino a MFC per comodità - non sono sicuro che lo scelgo per qualcosa di diverso da una piccola utility 25 set. 082008-09-25 00:46:56

+1

Ci sono un certo numero di altri toolkit. Fltk, Gtk in particolare ha binding C++, ma qualsiasi toolkit gui con binding C è utilizzabile. 25 set. 082008-09-25 21:56:57


28

Ho utilizzato Qt da diversi anni per lo sviluppo commerciale e ne sono stato molto contento.

Una delle cose carine con Qt è che fornisce un ampio set di librerie e materiale GUI (ad es. Analisi XML, thread, networking), il tutto in uno stile coerente e in tutte le multi-piattaforma. Questo significa che raramente abbiamo bisogno di usare altre librerie, anche se usiamo boost per alcune cose.

Un altro fattore molto importante per noi era l'internazionalizzazione. In una precedente applicazione basata su MFC abbiamo dovuto mantenere 2 versioni localizzate, per le due lingue che supportiamo. Nella nostra app basata su Qt abbiamo solo la versione.

  • Il sistema di traduzione Qt, utilizzando linguista è facile da usare e rende supporto di più lingue semplice (ovviamente si devono ancora tradurre le stringhe che è un sacco di lavoro!)
  • Il sistema di layout GUI in cui il i widget si ridimensionano secondo un layout che rende tutto molto più semplice. In diverse lingue la lunghezza delle stringhe è diversa. Con i widget di dimensioni fisse (come MFC) è necessario regolare ciascuna finestra di dialogo per ogni lingua, altrimenti le parti delle etichette vengono tagliate. Con Qt si ridimensionano. Certo, ci sono casi in cui non funziona perfettamente ma rende 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 univoco per Qt. In diverse occasioni la capacità di controllare la sorgente Qt ha spiegato qualche strano comportamento o dato un indizio su come ottenere qualcosa.

Abbiamo rilevato alcuni bug in Qt, alcuni dei quali sono stati risolti dopo aver segnalato a Trolltech. In altri casi hanno suggerito un lavoro in giro. Questi sono stati tutti abbastanza oscuri e non hanno avuto un impatto significativo sul nostro sviluppo.

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

Non ho nemmeno usato Jambi.

  0

Ciao David, Cosa sono le librerie di terze parti a cui ti riferisci? Puoi fornirmi un esempio? 24 ago. 102010-08-24 11:43:59

  0

Ho iniziato a usare Qt un mese fa, usando il nuovo Qt Quick. Il più grande reclamo finora è se commetti un errore, non genera eccezioni o segnala errori, semplicemente non riesce a fare ciò che vuoi senza suggerimenti su ciò che hai fatto di sbagliato. Anche molti altri problemi seri. 18 giu. 162016-06-18 23:34:28


3

Utilizzo Qt da oltre due anni.

cose che mi piacciono su Qt sono:

    programmazione
  • facile GUI (rispetto al MFC), Qt Designer
  • classi contenitore Nizza
  • quadro Nizza scena grafica
  • Eccellente documentazione con esempi utili
  • Supporto traduzione
  • Supporto tecnico valido

Consiglio vivamente il Qt Developer Days. Se hai la possibilità di prenderne parte, allora fallo! Ci sono un sacco di discorsi interessanti e molto interessanti.


4

Ho usato Qt in un lavoro precedente. Avevo solo il più breve contatto con Qt molti anni prima, quindi ero praticamente un Qt newb.

Quando ho iniziato mi è stato detto di scegliere la lingua e l'ambiente, ma il supporto multipiattaforma era auspicabile. Ho provato Qt e Java e ho persino dato il via a C# solo per il gusto di farlo. Mi sono dato due giorni per valutare ogni opzione.

Forse ero leggermente sbilanciato con la mia storia di sviluppatore C++, ma dopo aver speso tempo su ciascuna opzione Qt era l'unico che mostrava qualche suggerimento per essere utile senza una lunga curva di apprendimento.

La documentazione fornita con Qt e le applicazioni di esempio ha reso molto facile per uno sviluppatore esperto, ma il principiante Qt ha iniziato a funzionare molto rapidamente. Ho avuto il prototipo UI/mockup dell'applicazione finale fatto entro la fine del mio periodo di prova. Con Java/Eclipse, Java/SunStudio e C#/VS.net ho avuto difficoltà a ottenere qualcosa di non banale in quel momento.

I segnali/le slot impiegavano un po 'di tempo per abituarsi, ma non era male, e ho scritto alcuni semplici wrapper per affermare quando le connessioni non riuscivano a fermare errori di battitura stupidi dall'arresto dell'app. dal lavoro.

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

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

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

L'unico aspetto negativo che posso ricordare è la difficoltà nel debug degli oggetti Qt (utilizzando VS) - esiste un plug-in Qt per VS che può esaminare oggetti Qt ma stavo usando la versione gratuita di VS e i plugin non funzionano per esso. Ma non era colpa di Qt.

Non ho usato jambi quindi non posso commentare.


8

Ecco alcuni dei miei pro e contro con Qt:

Pro:
multipiattaforma
So che questo si è sempre utilizzato, ma dopo essere andato avanti e indietro tra Windows e Linux con Qt , è incredibile quanto poco devo fare per alzarmi e correre. Penso che questo sia aiutato dal fatto che uso solo Vim con Qt Designer.

QMake
Questo è uno dei miei aspetti preferiti di Qt. Dopo aver lavorato su wxWidgets, FLTK, ecc., Sono così stanco di fare scherzi con diversi sistemi di compilazione e non voglio creare manualmente i miei makefile. Al momento uso CMake su qualcosa di diverso da Qt adesso, ma penso che mi stia muovendo lentamente anche Qt su CMake. Tuttavia è così facile andare avanti con QMake.

QTestLib
ho guardato un paio di altri framework di test di unità C++ e quando ho creato il mio test utilizzando QTestLib, si sentiva molto simile a NUnit (C#) e in pochi minuti ho avuto diverse prove di passaggio. Ho anche notato che sarebbe stato molto facile creare il mio ambiente continuous integration.

più vicino a Java e. Netto in produttività
La cosa più grande che sento/leggere le persone dicono di C++ è, "Posso essere più produttivo con Java o .Net". Dall'esperienza personale posso ottenere un prototipo di un'applicazione in esecuzione in Qt utilizzando Vim e Qt Designer, prima che carichi anche Eclipse o Visual Studio. Ho anche un insieme 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ù importante che posso pensare in questo momento. Tuttavia, il costo vale ogni centesimo, se sapessi quanti centesimi ho dovuto risparmiare senza fare una chiamata a un rappresentante. Ho acquistato una licenza nel giorno in cui avevano il loro sconto per le piccole imprese e ne valeva la pena allora, avrei pagato tre volte tanto e penso che sia il prezzo corrente.

Sviluppare ovunque con licenza commerciale
Mi piacerebbe essere in grado di sviluppare su qualsiasi piattaforma, ma costruire e vendere per un'altra piattaforma. Ad esempio, sviluppa su Linux, quindi crea e distribuisci su Windows se hai solo la licenza commerciale di Windows. Da quello che so, puoi solo sviluppare e costruire un'applicazione commerciale sulla piattaforma per cui hai una licenza.

Blocco fornitore
In un certo senso, questo è più di una truffa personale. Non mi piace essere legato a un fornitore specifico perché ottengo il lato tracciato dalla direzione dell'azienda e dalla direzione del prodotto. TrollTech è stata acquistata da Nokia, è una cosa buona o cattiva che non conosco, 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 fare un paio di progetti di prototipi per scoprire quanto sia facile usare un plugin sviluppato in C++ con Jambi. Soprattutto usando Jambi come interfaccia web con plugin C++.

A dire il vero non ho letto molto su di esso, quindi potrebbe essere impossibile o molto facile.

+4

quanto costa? ora è LGPL, e GPL è in circolazione dal primo giorno! 30 mar. 092009-03-30 17:02:33

  0

Originariamente era> 2500GBP/sviluppatore su Windows, quindi era GPL su Linux (non molto utile se si stanno facendo applicazioni commerciali) poi è diventato LGPL circa un anno fa. 14 feb. 102010-02-14 02:08:22


0

Non utilizzarlo, però ...

Pro: QT ha un layout 3 fasi opzionale, dove come WX consente solo per 2 attualmente (credo che hanno intenzione di fare 3 fasi, solo che non hanno ha funzionato ancora).

Uno dei problemi più grandi con l'utilizzo di layout è il testo statico e il wrapping. WX ti chiede quanto è grande la tua larghezza/altezza e le porzioni minime dello schermo, QT ha l'opzione di dire quanto vuoi, quanto in alto devi essere se hai X largo. Questo ti consente di esprimere il flusso di una pagina molto meglio.