Newsgroup: it.comp.lang.c++
Titolo: Libreria Grafica in c++

Salve a tutti,
volevo sapere se qualcuno mi potesse consigliare un libro o delle
documentazioni su come inserire un'interfaccia grafica in ambiente
windows.
Forse la domanda è troppo generale, in pratica mi servirebbe applicare
una grafica ad un progetto che devo sviluppare in c++.

Ciao,
io sviluppo quasi solo su GNU/Linux, però ho fatto diversi programmi
che ho portato anche a Windows e a Mac OS X senza difficoltà.
Mi trovo molto bene con le Gtkmm (
http://www.gtkmm.org/
), di cui è
anche disponibile un installer per Windows (
http://live.gnome.org/
gtkmm/MSWindows). Con le gtk+/gtkmm, puoi anche creare un'interfaccia
con Glade, e usare le classi Gtk::Builder all'interno del framework
per caricare velocemente il tutto e scrivere solo il codice per i
segnali. Trovi un installer di Glade per Windows qui:
http://sourceforge.net/projects/gladewin32
La documentazione della classe Gtk::Builder è qui:
http://gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_1Builder.html
Un'altra alternativa con cui ho sviluppato, anche se non incontra i
miei gusti, sono le wxWidgets (
http://www.wxwidgets.org/
). Puoi darci
un occhio.
Infine, ci sono anche le librerie Qt di Trolltech/Nokia. A me non
piacciono molto per l'uso che fanno di macro, però hanno veramente
un'ottima documentazione e sono molto complete (fanno anche molte cose
in più rispetto ad un toolkit grafico). Trovi il sito qui:
http://www.qtsoftware.com/
PS. Per gtkmm e qt+, forse è più facile sviluppare in GNU/Linux e poi
quando si ha terminato ricompilare il tutto in Windows, comunque vedi
tu. È questione di gusti.
A presto,
Matteo


 in pi� rispetto ad un toolkit grafico).
Aggiungo, io invece le adoro. Oltretutto in ambiente Mac e Windows sono
*molto* meglio integrate. Di fatto su Mac sono le uniche che si
comportano decentemente. 
Su Windows ho sentito tante lamentele riguardo GTK. Effettivamente
sembra molto "lo sbarco degli alieni". Non stando su Windows pero',
riporto parole altrui.
-- 
-riko

 -riko
Devo dire che le GTK preferisco evitarle piu che altro perchè su
windows ho sentito pareri che sono abbastanza pesanti e sono fuori
dallo stile di windows stesso.
Per rimanere in tema windows forse le migliori sarebbero le WxWidgets,
invece delle Qt ne ho sentito parlare parecchio bene.
Penso puntero piu su quest'ultima.

 Penso puntero piu su quest'ultima.
Posto che siamo comunque pesantemente OT. :P
-- 
-riko

Penso puntero piu su quest'ultima.
Da poco tempo le QT sono stare rilasciate sotto LGPL, quindi non hai nemmeno 
l'obbligo di pagare la licenza per vendere i tuoi programmi.
Oltretutto hanno il QT Designer come tool di sviluppo, nettamente superiore 
agli altri disponibili per questi framework os indipendent.
Credo proprio che QT siano ormai il framework di riferimento per gli 
sviluppatori C++ che voglio applicazioni os indipendent. 

 sviluppatori C++ che voglio applicazioni os indipendent. 
Premettendo che IMHO nessun sistema crossplatform e` nativo sul serio su 
nessuna piattaforma, per quanto tutte le maggiori librerie (gtk, qt, wx) 
si sforziono di esserlo....
Sia su windows che su mac le interfacce si sono evolute in modo tale da 
divergere nelle forme e nell'uso (pensate a quanto alieno e' itunes su 
windows e quanto alieno sarebbe office 2007 con "ribbons" su mac).
Le grosse applicazioni tipicamente finiscono con l'implementare una GUI 
nativa per ogni piattaforma. Vedi ad esempio OpenOffice o Firefox.
Quando si sceglie una GUI nativa di solito sotto linux si sceglie GTK, 
il motivo principale e` che GTK e' una libreria C e cio' permette una 
facile linkabilita' anche se la versione usata dal programma non e` la 
stessa presente sul sistema target.
Tipicamente io sviluppo applicazioni crossplatform Windows/Linux, come 
interfaccia grafica scegliamo sempre GTK, anche perche` sono anni che 
utilizziamo questa strategia e le QT sono LGPL soltanto da alcuni mesi.
Ritengo che utilizzando l'apposito ENGINE nativo (wimp) un'applicazione 
GTK sia molto simile ad un'applicazione nativa su windows, direi 
indistinguibile se non per alcuni oggetti (ad esempio il TreeView).
Sicuramente QT vince su GTK come documentazione, perde come ambiente di 
sviluppo (il maledetto preprocessore moc) e forse perde come performance 
sugli oggetti complessi (uso il condizionale perche` i miei test su 
treeview popolati con svariate migliaia di elementi li avevo fatti 3/4 
anni fa, con gtk 2.4 vs qt 3).
wx allo stato delle cose lo consiglierei soltanto a chi ha un solido 
background MFC, dalle quali le wx adottano la filosofia e gli oggetti.
Negli anni io mi sono sviluppato un wrapper object oriented molto light 
e molto friendly sulle GTK che mi permette di scrivere interfacce anche 
nel codice (o tramite builder) alla velocita' della luce e a sto punto 
tornare a valutare seriamente QT e` un'opzione che potro' valutare solo 
per un NUOVO progetto molto grosso o se qualche evidente lacuna di GTK 
bloccasse un progetto...
Bye,
  Gabry

 e molto friendly sulle GTK 
Hai costruito tu dei componenti apposta?
Saluti

 background MFC, dalle quali le wx adottano la filosofia e gli oggetti.
Quoto.
-- 
-riko

Enrico Franchi ha scritto:

dico anche io la mia: a parte il designer che ora ï¿œ evoluto nel qt
creator sia eclipse che netbeans si integrano perfettamente con qt.
inoltre con qt ci guadagni pure: stampa pdf, componenti per accesso ai
database, canvas su opengl, network, i/o, gestione della memoria semi
automatica e  il tutto indipendentemente dalla piattaforma utilizzata.
il sistema di signal e slot implementato in maniera non standard
richiede l'utilizzo di un meta compilator di oggetti il maledetto "moc"
appunto ma grazie all'integrazione eclipse/netbeans o semplicemente
usando qmake uno se ne puï¿œ anche sbattere.
giusto per la cronaca su mac, qmake produce pure un template per xcode
giusto per non farsi mancare nulla.
michelangelo