Newsgroup: it.comp.os.linux.development
Titolo: gtk o qt?

Ho una piccola esperienza come programmatore in c/c++ a livello di console. 
Desidero fornire alle mie applicazioni interfacce grafiche. Mi dite dove 
posso scaricare della ottima documentazione sulle librerie QT e GTK. Mi 
consigliate quale delle due usare?  
-- 
Ti rendi conto che stai passando troppo tempo sulla Rete quando...
        Tua moglie dice che la comunicazione e' importante in un matrimonio,
        e allora tu compri un altro computer ed installi un'altra linea
        telefonica cosicche' voi due possiate fare chat.

Mi consigliate quale delle due usare?  
wxwindows <G>
Leggi la doc e vedi quale ti piace di piu.
Ma tanto adesso parte il flame.. :)
ciao
twism

 consigliate quale delle due usare?  
Personalmente, consiglio le GTK+.
Per la documentazione, parti da:
 
http://www.gtk.org
 
http://developer.gnome.org
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://digilander.libero.it/ebassi/
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

  Ma tanto adesso parte il flame.. :)
Qualcuno sa mica se è in progetto un backend qt per wxwindows? Giusto
per curiosità.
V.

 Personalmente, consiglio le GTK+.
Perche' ?
Nicola.
-- 
chi va pian va san e va lontan

> Personalmente, consiglio le GTK+.
Le GTK+ non hanno il minimo problema di licenza, puoi usarle in progetti
con qualunque licenza (anche in software closed source) in quanto sono
sotto LGPL. Le QT sono sotto GPL, quindi o il tuo programma è sotto
GPL, oppure devi comprare la versione commerciale, che ti permette di
scrivere software con qualunque licenza che usa le QT. 
Questo è un buon motivo per usare le QT, in quanto tutto il software
dovrebbe essere sotto GPL! :-)
Io, in C++ preferisco usare le QT. In Python una vale l'altra, uso le QT
solo perchè le conosco meglio. In C, esistono solo le GTK+ (ho sentito
parlare di qualche wrapper C per le QT, ma non so in che stato sia) e
quindi usa quelle.
Ricapitolando: con le GTK+ non avrai mai problemi di licenza. Ma se
pensi che distribuirai solo sotto GPL, IMHO (e sottolineo, IMHO) sono
meglio le QT.
-- 
Andrea Bergia - studente              Linux Registered User #281550

 Perche' ?
Perché esistono wrapper per praticamente ogni linguaggio conosciuto[1];
perché sono scritte, IMHO, molto bene; perché sono sotto LGPL, e quindi
potrai rilasciare il codice con qualsiasi licenza tu voglia senza dover
pagare nessuno; perché le uso da un anno, e mi ci trovo molto bene.
+++
[1] Addirittura, è appena uscito un modulo per le libslang, usate anche
da SLRN, per scrivere macro usando le GTK.


 pagare nessuno; perché le uso da un anno, e mi ci trovo molto bene.
Si ma se usi linux la licenza delle qt e' comunque GPL (vedi post di Andrea
Bergia). Pensavo al fatto che le qt sono portabili su winzozz, anche se non
lo faro' mai, perche' mi tocca pagare 1550 dollari come minimo :O
P.S. mi sembrano un po' cari rispetto alla concorrenza anche se offrono di
piu' di micro$oft. Ma sono sempre pochi che si possono permettere la
ferrari, gli altri girano con la fiat (fin che dura :P).


 minimo :O
Parlando solo di licenza, senza entrare nel merito della qualita' della
libreria, le GTK sono meglio visto che sono rilasciate sotto LGPL.
Le QT invece sono GPL, quindi sei obbligato a rilasciare sotto GPL: non puoi
cambiare la licenza di un prodotto che utilizza le QT... a meno ovviamente
di non comprarti la licenza commerciale.
Se vuoi risparmiare sulle QT puoi comprare BlackAdder finche' e' in test: ti
vende anche una licenza per le QT e le PyQT ad un prezzo scontato.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 ferrari, gli altri girano con la fiat (fin che dura :P).
Le licenze per seat sono per chi se le può permettere (software house).
Non mi pare che la Trolltech chieda poi molto, considerando i prezzi di
altre librerie.


 
cut...
Ok, piu' che sufficiente direi :)


 
http://developer.gnome.org
In effetti anni fa ho ricevuto in regalo il manuale
 "GTK+/Gnome Sviluppo di applicazioni" di H.Pennington
che ho trovato ottimo e che si puo` anche liberamente scaricare proprio
dall'indirizzo che tu indicavi e precisamente:
 
http://developer.gnome.org/doc/GGAD/it/ggad.html
L'unico mio dubbio e` che magari stia diventando un po' vecchiotto (1999).
Regards,
 Mattex
--------------------------------
Inviato via 
http://usenet.libero.it

 L'unico mio dubbio e` che magari stia diventando un po' vecchiotto (1999).
Il GGAD è "vecchiotto", infatti. Da allora, le GTK sono cambiate (sono
uscite le GTK 2) e GNOME anche (GNOME 2).
Tuttavia, alcuni concetti generali sono ancora applicabili, come la
creazione di un progetto basato su quella creazione del demonio che
passano sotto il nome di "autotools", alcune regole base dei widget sia
GTK che GNOME, etc.


 uscite le GTK 2) e GNOME anche (GNOME 2)
e scrivere applicazioni grafiche svincolate da un determinato window
manager?
Mi piacerebbe imparare a scrivere direttamente per x, in modo da poterle
utilizzare anche ad es. con Blackbox su GNU/Hurd, che ancora non supporta
Gnome.
Hai qualche buon link in merito?


 Gnome.
Lascia stare le Xlibs, se non vuoi rivedere quello che hai mangiato a
pranzo. ;-)
Se vuoi fare roba a basso livello, usa le GDK: sono più semplici.


 Se vuoi fare roba a basso livello, usa le GDK: sono più semplici.
Ma e` come se nel mondo del C++ proprietario si usassero le MFC anziche`
programmare direttamente in windows? ..perche` se fosse piu` o meno cosi`,
posso dire che ad es. quando e` necessario, io sul lavoro uso con profitto
le MFC ma e` anche perche` so come avrei dovuto scrivere direttamente per
windows..
xcalc, xedit, xbitmap, xclock, xeyes, ecc. ecc., non usano le Xlibs?
..non so ma cmq sono applicazioni un po' scarse graficamente (IMHO) che
pero` girano 'agilmente' e senza bachi apparenti anche sul mio 386 8Mb di
ram con Mulinux. La mia idea sarebbe appunto di riuscire a scrivere magari
con grafica un po' spartana ma utilizzabile da piu' parti, anche su macchine
vecchie ed anche per GNU/Hurd.
Io sono niubbo ma so che tu sai per cui approfondiro` come mi hai
consigliato su 'GDK' ma mi rimane il dubbio: non e` che dopo la vomitata poi
si sta 'benissimo'? ..perche` anche in windows quando ci si rende conto che
per visualizzare una banalissima finestra occorre scrivere una sfilza mai
piu` finita di righe di codice, il dolore si fa un po' piu` in basso ma
siamo sempre li` ;) ...poi passa! :D
Se riuscissi a fare qualche file di base con una finetra con menu, un tasto,
per ora gia` andrebbe bene visto che non ho grosse pretese e non uso Linux
professionalmente.


 professionalmente.
Se vuoi fare una finestra con un menù e un tasto, allora ti conviene
salire di livello e usare le GTK, se non vuoi impazzire.
+++
La maggiore differenza degli ambienti grafici sotto Linux rispetto al
mondo Windows, è il numero di toolkit a disposizione. Puoi partire da un
approccio a basso livello come le Xlibs, oppure da un approccio ad un
livello un filo più alto, come le GDK. Queste librerie, tuttavia, sono
utilizzate solo nel caso in cui tu debba fare qualcosa di esotico; nel
99% dei casi, ti conviene usare un widget set come le GTK o le QT, che
ti risparmiano il mal di testa.


>Sotto X ti rendono la vita molto più semplice, rispetto ad >usare le Xlibs
direttamente.
Ne approfitto per chiedere:
Le GTK usano poi le Xlibs per interagire con il server X o vi accedono
direttamente ?
Le Xlibs sono installate *sempre* quando si installa il server X ?
E' possibile interagire direttamente con il server X senza utilizzare le
Xlibs ? Oppure le Xlibs ne rappresantano l'API ?
Grazie mille.


 Xlibs ? Oppure le Xlibs ne rappresantano l'API ?
La seconda che hai detto.


* Emmanuele Bassi [2003-08-11 14:31]:
BTW: un URL interessante sull'argomento:
 
http://freshmeat.net/articles/view/928/



Se con minimale intendi un'attenzione a non appesantire mai piu` del dovuto,
credo allora che sia Mulinux che Hurd, che uso, lo siano.
Un po' GTK+ l'ho studiato ed ho portato su gtk un portscanner scritto in C,
cosi` per fare una prova, visto che l'effettiva utilita` non c'era poiche`
gia` da console era ben utilizzabile e l'interfaccia non gli ha aggiunto
utilita`-comodita`effettive. Cmq funge, sia su Debian che RH ma su Mulinux e
Hurd no..
Poi come dicevo penso che avere qualche conoscenza reale delle Xlib non sia
poi male. In rete ci sono molti reference, manuali non ne ho trovati;
qualche esempio di file di base pero` c'e`, non so se funzionano ma cmq
sembrano pure abbastanza leggibili.
Ho trovato anche spesso citato il manuale della O'Reilly
"Xlib programming manual"
lo conosci?


 lo conosci?
Non l'ho mai letto, anche se l'ho sentito nominare.
+++
Come ho detto, nella scrittura di applicazioni per X, usare le Xlibs
*oggi* significa solo volersi fare del male, o avere a che fare con
sistemi che, per ragione o per forza, non mettono a disposizione dei
toolkit.
Però tieni conto che perfino in sistemi embedded è possibile, e
consigliabile, usare toolkit come QTEmbedded o GTK su directFB.
Questo è quanto posso consigliarti. Poi, se hai voglia di imparare le
Xlibs fai pure, ci mancherebbe. Personalmente, a parte una conoscenza di
base sulla struttura di queste librerie, e della filosofia ad eventi,
non perderei tempo. Anche perché le applicazioni che fanno direttamente
uso delle Xlibs sono poche (di solito, window manager, o altra roba a
basso livello).



Grazie per tutte le informazioni, ho cercato di informarmi un po' anche in
rete al riguardo e da quanto avrei capito finora:
Nato al MIT nel 1984 "X Window System" e` il successore di W (Window) ed
e`essenzialmente un protocollo di comunicazione fra l'Xclient e l'Xserver.
Noi ad es. usiamo l'X11R6 il cui '6' sta per 'intel386' ed X si e`
sviluppato soprattutto per UNIX-Linux comunicando tramite il protocollo
TCP/IP, ma e` stato progettato per girare ovunque. In effetti su Hurd ad
es., X gira perfettamente. E` stato progettato per sfruttare bene l'hardware
senza interferire con il qualsivoglia OS sottostante ed il window-manager:
se si disponesse ad es. di un Cray e di una Silicon Graphics sarebbe il caso
di far girare l'Xclient che magari abbisogna di molti calcoli , sul Cray,
utilizzando la Silicon Graphics per l'impegno grafico dell'Xserver. Non
male, no?
GTK, mi sembra gia` tradisca un po' questo presupposto progettuale: ad es.
la semplice installazione delle sue librerie su Hurd come avviene per X11
non da frutti. Chissa` perche`?
Dopo un po' di ricerche in rete, avrei anche da darti una notizia
confortante visto che non ami molto utilizzare direttamente la Xlib :) :
Sarebbe utile conoscere l'X11 in un modo stratificato:
 Protocollo X
 Xlib (+ di 300 routines in C)
 Xaw (Athena Widget Set, i window-object)
 X ToolKit Intrinsics ("XT Intrinsics", object-oriented)
 
per utilizzarlo nella sua interezza, ma per scrivere codice per X il piu`
compatto e veloce possibile, a quanto letto, il miglior approccio sarebbe
quello di scrivere direttamente codice che invia messaggi all'Xserver
tramite byte, appropriati al protocollo X : un sicuro toccasana per i tuoi
crampi allo stomaco! ...:DDD


>Come ho detto, nella scrittura di applicazioni per X, usare le >Xlibs
*oggi* significa solo volersi fare del male...
Mi ricollego al discorso per chiedere: per sviluppare con GTK ho bisogno del
pacchetto Developer giusto? Dove posso trovarlo e soprattutto cosa contiene
? (definizioni per strutture, chiamate, immagino..) .
Sono realmente all'inizio con Linux. Grazie mille.


 ? (definizioni per strutture, chiamate, immagino..) .
Header, documentazione, utility di supporto per la compilazione.
