View previous topic :: View next topic |
Author |
Message |
luca82 Guru
Joined: 22 Oct 2003 Posts: 306 Location: Somewhere Between Heaven and Hell
|
Posted: Sun Aug 08, 2004 10:25 am Post subject: Separare core e gui |
|
|
Ciao a tutti,
volevo sapere qualche chiarimento in più riguardo alla separazione della GUI dal core di una applicazione GTK. In particolare, esiste qualcosa di simile a XUL di Mozilla per GTK? Ho sentito che con glade si dovrebbe riuscire a generare un file (di testo?) che, in caso di modifiche all'UI, nn devo ricompilarmi tutta l'app.
Se qualcuno conosce qualche link a qualche tutorial sull'argomento...
Grazie in anticipo |
|
Back to top |
|
|
conte n00b
Joined: 30 Nov 2003 Posts: 46
|
Posted: Sun Aug 08, 2004 11:06 am Post subject: |
|
|
spiegati meglio
gtk e' un linguaggio interpretato quindi il codice che scrivi crea l'interfaccia grafica, volendo.
Glade e' una vera forza ed in piu c'e' pure la ver per winzoz se vuoi testare il tutto anche li .
Se il tuo punto d'arrivo e' quello di creare interfacce grafiche indpendenti dal vero programma penso che gtk faccia al caso tuo
se e' questo che cerchi dimmi che ti passo qualche link
tank |
|
Back to top |
|
|
motaboy Developer
Joined: 15 Dec 2003 Posts: 1483
|
Posted: Sun Aug 08, 2004 11:12 am Post subject: |
|
|
conte wrote: |
gtk e' un linguaggio interpretato quindi il codice che scrivi crea l'interfaccia grafica, volendo.
|
gtk+ é una libreria scritta in C e quindi compilata, poi ha un parser per i file XML creati con glade che ti permette di introdurre modifiche all'interfaccia grafica. Ovviamente se aggiungi un bottone o altro widget devi anche scrivere il codice per gestire le calback relative. _________________ ... |
|
Back to top |
|
|
conte n00b
Joined: 30 Nov 2003 Posts: 46
|
Posted: Sun Aug 08, 2004 12:05 pm Post subject: |
|
|
ed il codice scritto per il bottone come viene visto ???
non mi pare di aver mai compilato n programma da me scritto in gtk.
tank |
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Sun Aug 08, 2004 12:42 pm Post subject: |
|
|
conte wrote: | ed il codice scritto per il bottone come viene visto ???
non mi pare di aver mai compilato n programma da me scritto in gtk.
tank |
Sicuro che non stai confondendo con il tcl/tk o con qualche binding delle gtk+ per python o perl? _________________ Ciao da me! |
|
Back to top |
|
|
n3m0 l33t
Joined: 08 Feb 2004 Posts: 798 Location: Richville, Naples, Italy, Europe
|
Posted: Sun Aug 08, 2004 12:47 pm Post subject: |
|
|
conte wrote: | ed il codice scritto per il bottone come viene visto ??? |
Codice C.
Il reference ufficiale di GTKButton.
Il bottone è una struttura nelle GTK.
Quindi se fai un bottone, hai allocato una variabile di tipo GTKButton.
(nell'ottica OOP, hai creato un'istanza della classe GTKButton)
Ci sono bindings di GTK anche per linguaggi come Python (interpretato), ma questo non equivale affatto a dire che "GTK è un linguaggio intepretato". Da python non fai altro che usare sempre le GTK scritte in C tramite un'"interfaccia" messa a disposizione da librerie python.
GTK è un set di librerie, scritto in C, il che è ben diverso da dire che GTK è un linguaggio.
Un po' di link:
www.gtk.org
http://developer.gnome.org/doc/API/2.0/gtk/index.html
www.gnome.org
e infine
www.xml.org
giusto per capire che il file XML generato da Glade serve solo a descrivere le widget della GUI, non a scrivere il codice del suo funzionamento. _________________ Lenergia è la civiltà. Lasciarla in mano ai piromani/petrolieri è criminale. Perché aspettare che finisca il petrolio?
Letà della pietra non è mica finita per mancanza di pietre. - B.G.
Site/Blog: http://www.neminis.org |
|
Back to top |
|
|
n3m0 l33t
Joined: 08 Feb 2004 Posts: 798 Location: Richville, Naples, Italy, Europe
|
Posted: Sun Aug 08, 2004 12:53 pm Post subject: |
|
|
Suggerirei, in ogni caso, di cambiare il titolo del topic.
IMHO separare core e GUI significa tutt'altro (eg: front-end che comunica tramite pipe con un processo di back-end [eg: K3B con cdrecord]). Spero che anche voi altri conveniate. _________________ Lenergia è la civiltà. Lasciarla in mano ai piromani/petrolieri è criminale. Perché aspettare che finisca il petrolio?
Letà della pietra non è mica finita per mancanza di pietre. - B.G.
Site/Blog: http://www.neminis.org |
|
Back to top |
|
|
luca82 Guru
Joined: 22 Oct 2003 Posts: 306 Location: Somewhere Between Heaven and Hell
|
Posted: Sun Aug 08, 2004 1:25 pm Post subject: |
|
|
In pratica, se nn ho capito male, glade produce un file XML tipo XUL che funziona in modo simile. Conoscete qualche tutorial che spiega come funziona il tutto e se è possibile utilizzare java come linguaggio con il file generato da glade...
Adesso cerco sui forums di Mozilla per saperne di più sull'integrazione XUL gtk. |
|
Back to top |
|
|
akiross Veteran
Joined: 02 Mar 2003 Posts: 1170 Location: Mostly on google.
|
Posted: Mon Sep 13, 2004 3:55 pm Post subject: |
|
|
Glade puo' essere usato in 2 modi:
1. metodo migliore: glade salva il file di interfaccia (cioe' la finestra con su tutti i widget) in un file XML. Esiste poi libglade, per vari linguaggi (C, C++, python, ruby, java ecc) che permette di leggere dinamicamente (run time) il file XML ed utilizzare tutti i widget creati nel programma.
Non e' una vera e propria separazione del codice dalla grafica (o almeno non e' una separazione totale), pero' se vuoi cambiare qualche cosa nella grafica, senza modificare proprieta' importanti del widget (cioe' il nome, il tipo), puoi usare lo stesso codice senza problemi.
2. Glade puo' produrre codice C che contiene tutte le definizioni per avere l'interfaccia grafica come l'hai creata con il mouse. Ovviamente pero', se cambi l'interfaccia devi rigenerare il codice C.
Attualmente si consiglia l'uso di libglade, in ogni caso. La generazione del codice C e' deprecata e verra' rimossa in glade3.
Se vuoi ho fatto un tutorial a proposito, ma con Python. E' comprensibilissmo anche se conosci solo Java. Onestamente libglade l'ho usata solo con python, ma con Java o C++ non cambia molto (ho visto alcuni sorgenti con questi linguaggi)
Trovi il tutorial (l'ultimo dell'elenco) e molte altre cose qui https://forums.gentoo.org/viewtopic.php?t=194515
ciauz!
EDIT:
Si, anche io credo che sia piu' appropriato cambiare titolo al thread. _________________ Libera scienza in libero stato.
Horizon of Events |
|
Back to top |
|
|
X-Drum Advocate
Joined: 24 Aug 2003 Posts: 2517 Location: ('Modica','Trieste','Ferrara') Italy
|
Posted: Tue Sep 14, 2004 1:09 pm Post subject: |
|
|
conte wrote: | spiegati meglio
gtk e' un linguaggio interpretato quindi il codice che scrivi crea l'interfaccia grafica, volendo. |
GTK è una libreria scritta in _LINGUAGGIO C_ (maldocumentata ) hai presente le QT?
il codice del bottone come lo hai definito tu è _CODICE C_ nient'altro
conte wrote: |
Glade e' una vera forza ed in piu c'e' pure la ver per winzoz se vuoi testare il tutto anche li .
|
glade non è altro che un gui designer che dovrebbe semplificare la costruzione della GUI.
Quindi non è altro che un generatore di codice C o meglio di funzioni appartenenti alla libreria gtk
Per poter adoperare un prg scritto in C/Gtk sotto windoze devi portare l'applicazione e far riferimento alle Gtk per windoze
LOL _________________ "...There are two sort of lies, lies and benchmarks..." |
|
Back to top |
|
|
babalinux Tux's lil' helper
Joined: 20 Aug 2003 Posts: 117
|
Posted: Tue Sep 14, 2004 3:19 pm Post subject: |
|
|
n3m0 wrote: | Suggerirei, in ogni caso, di cambiare il titolo del topic.
IMHO separare core e GUI significa tutt'altro (eg: front-end che comunica tramite pipe con un processo di back-end [eg: K3B con cdrecord]). Spero che anche voi altri conveniate. |
beh... diciamo che, secondo me, entrambi i casi possono essere descritti dal topic.
Il tuo esempio rappresenta uno dei modi in cui una componente grafica di un programma puo' dialogare con le componenti piu' interne, definite di logica applicativa, o core dello stesso o di altri (visto che parli di pipe, anche le FIFO sono pipe) programmi.
D'altra parte e' ormai universalmente accettato il "design pattern" (passatemi il termine qui nella sua accezione piu' ampia) secondo cui costituisce caratteristica di robustezza per un sofware il "separare l'interfaccia grafica dalla business logic". Per fare cio' non c'e' sempre bisogno di due processi distinti et similia.
Nell'ambito delle applicazioni per database, ad esempio, c'e' un'ampissima e valida letteratura sull'argomento. Ad esempio cio' che di solito si cerca di fare e' separare la presentazione dei dati (che avviene tramite la GUI) dalla parte di interazione con il livello di persistenza che li gestisce.
cheers,
baba _________________ "...Funny things you learn from your mama, like the way to throw your head back when your swallowing pills..." |
|
Back to top |
|
|
lopio Veteran
Joined: 22 Dec 2003 Posts: 1161 Location: savona, Italy
|
Posted: Tue Sep 14, 2004 7:49 pm Post subject: |
|
|
akiross wrote: |
Onestamente libglade l'ho usata solo con python, ma con Java...
|
ciao questa per me e' proprio una novita'.Sei sicuro esista la possibilita' du usare libglade con java?Hai qualche link?
PS grazie del tutorial python + libglade (piu' chiaro di quello del Webbit) |
|
Back to top |
|
|
|