2010-02-21 9 views
6

Ho notato che GTK ha un aspetto uniforme su tutte le piattaforme, il che è ottimo per gli amanti di Linux, ma non così grande per le persone che preferiscono la loro interfaccia grafica nativa.Quale libreria della GUI multipiattaforma ha il tocco più nativo per ciascuna piattaforma?

Non ho ancora usato correttamente Qt, motivo per cui non sono in grado di dire che questa è la scelta migliore per fornire la sensazione più nativa per ogni piattaforma - quindi qualcuno potrebbe confermare se Qt è quello che sono dopo?

risposta

1

Sì, lo credo. Qt cerca ha dovuto seguire il look nativo & feel. Non solo come appaiono i widget, ma anche cose come l'ordine dei pulsanti, ecc. Naturalmente la creazione di un'applicazione che segue realmente tutte le convenzioni UI native sarà difficile (il design dell'interfaccia utente Mac è molto diverso da Windows, ad esempio), ma Qt ti aiuterà molto con esso.

1

Non ho esperienza con Qt, ma SWT ha il look-and-feel nativo per le piattaforme principali in virtù del fatto che spedisce librerie native per fare il lavoro. L'abbiamo usato per creare plug-in Eclipse per i nostri vari progetti.

7

Penso che Qt sia un'ottima scelta per avere un aspetto nativo.

Su Windows XP, i widget verranno renderizzati con lo stile Luna (stile predefinito di Windows XP). Su Vista/7, saranno renderizzati con il tema Aero. Su MacOS, saranno renderizzati con il tema Aqua.

Su Linux, è diverso. Qt utilizzerà il suo tema (stile Plastique) o usa il tema di KDE (tema Oxygen per esempio). Se preferisci GNOME o XFCE (GTK), Qt può anche usare il tuo tema GTK.

alt text

applicazione A Qt può essere perfettamente integrato in Windows XP/Vista/7, Mac OS, KDE, GNOME e Xfce.

+0

Ci vorrà del lavoro per ottenere OS X con Qt. Detto questo, può essere fatto. –

+0

Pensi che Qt sia meglio di Wxwidgets, o entrambi hanno i loro punti di forza? Ho la sensazione che Qt sia possibilmente "più semplice" da usare. –

+1

Scusa, non ho mai usato WxWidgets. È possibile ottenere alcune informazioni su Wx vs Qt: http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits#Qt – Desintegr

6

Wxwidgets utilizza la piattaforma sottostante per disegnare i widget (GTK sotto Linux, MFC sotto Windows ...), quindi non solo sembra nativo, ma lo è!

Modifica - Per Mac, wxWidgets utilizza Carbon e attualmente sta passando a Cocoa per 3.0.

Edit2 - Non ho usato QT da solo, ma le persone intorno a me che lo hanno utilizzato mi sono piaciute molto. Sull'applicazione QT che ho usato sotto Windows, mi sono sentito meno nativo, con un'integrazione un po 'più povera con il desktop, ma potrebbe essere solo una riflessione di queste particolari abilità degli sviluppatori.

Anche se wxWidgets ha le sue stranezze (un'integrazione piuttosto scadente su STL, eventi simili a MFC, a volte difficili da afferrare opzioni di box, wxGrid limitato ...), vengono elaborati e il sistema sta migliorando e migliorando (i nuovi widget di docking wxAUI sono fantastici).

Infine, wxWidgets è stato eccezionalmente bravo a stare lontano da me quando non ne avevo bisogno, permettendomi di usarlo esattamente per quello che volevo e nient'altro. Ad esempio, ero in grado di collegare con estrema facilità il mio codice socket al sistema degli eventi.

La mia sensazione è che wxWidgets e QT sono praticamente paragonabili, e andare all'una o all'altra sarà principalmente una questione di adattamento personale.

+0

E per Mac OS? –

+0

Ho chiesto a Desintegr di Qt vs Wxwidgets; allo stesso modo vorrei anche che tu mi aiutassi a scegliere la risposta corretta. Grazie. –

1

WxWidgets e Qt hanno entrambi l'aspetto giusto su OS X, ma non funzionano a meno che non si lavori un po 'di più, perché l'integrazione del SO corretto su OS X richiede anche di avere gli hook AppleScript di base corretti; OS X utilizza queste funzioni per molte azioni della GUI di sistema comuni, quindi è necessario che esse ottengano (ad esempio) il drag-and-drop sull'icona del dock funzionante.

2

Fuori da Qt e WxWindows da una lavagna pulita andrei per WxWindows - semplicemente perché utilizza i controlli nativi che offrono un supporto migliore sulle piattaforme future.

Sono arrivato a questa decisione il seguente processo non scientifico:

  • Recensito l'elenco delle applicazioni pubblicate e selezionati quelli che la maggior parte sembrava qualcosa nativo
  • giocatore
  • VLC Media vs. FileZilla - a volte a me VLC si sente strano mentre non mi ero nemmeno reso conto che FileZilla era stato scritto in WxWindows.
  • 5 delle applicazioni alleged top 32 utilizzano WxWindows.

Per me, quanto sopra è sufficiente per andare con WxWindows come prima scelta e vedere dove finisco dopo un po '.

Vale la pena ricordare che ho fatto un sacco di XAML e quindi avrei sicuramente cercato di usare XUL; in quanto è molto più bello ottenere il layout dal codice.

Come nota a piè di pagina anni fa, ho sviluppato un'applicazione che utilizzava lo ZincApplicationFramework, per fortuna da molto tempo morto e terribile, a cui piacciono i propri controlli su molto come Qt. E 'stato terribile e ho passato anni a fare scherzi con gli interni per farlo funzionare proprio sotto Windows. Questo mi rende pregiudizievole, o almeno scettico, di qualsiasi cosa segua lo stesso approccio, perché poco dopo questo progetto ho usato Allegris C++/Views per creare un'altra applicazione, e questo era molto meglio perché era uno strato molto sottile sopra i controlli nativi - il che significava che era facile fare le cose e molto più efficiente.

così che io possa avere una preferenza verso strati sottili e controlli nativi ....

1

Personalmente preferisco Qt sopra WxWidgets da faaarrrr. L'API di wxWidgets sembra un altro MFC ... troppo maldestro per i miei gusti. Qt, d'altra parte, è molto più vicino a come dovrebbero essere le app di scrittura nel C++ moderno, per non parlare del suo eccellente QtDesigner (okay, wxWidgets ha wxFormBuilder, ma l'ultima volta che ho controllato non era neanche lontanamente buono come QtDesigner).

Problemi correlati