Domanda

Ho imparato python per un po ' ora, con un certo successo.Sono persino riuscito a creare uno o due (semplice) di programmi utilizzando PyGtk + Glade.

La cosa è:Non so se il modo migliore per usare GTK con python è con la costruzione di interfacce con Glade.

Mi chiedevo se il più esperto tra di noi (ricordate, io sono solo un principiante) potrebbe evidenziare i vantaggi e le avvertenze di utilizzo di Radura in contrapposizione alla creazione di tutto ciò che nel codice stesso (supponendo che l'apprendimento di una corretta gtk associazioni di non essere esattamente un problema).

È stato utile?

Soluzione

Direi che dipende da:se l'utilizzo di Glade è possibile costruire le applicazioni che si desidera o necessità di fare che non è assolutamente un problema.Tuttavia, se si vuole realmente imparare GTK lavora o si dispone di alcune camere non-standard di interfaccia utente requisiti sono scavare in GTK interni (che non sono poi così complicato).

Personalmente io sono di solito circa 5 minuti in un rich client quando ho bisogno di qualche funzione o di personalizzazione che è semplicemente impossibile, attraverso un designer come Glade o Stetic.Forse è solo me.Tuttavia è sempre utile per me per fare il bootstrap finestra di progettazione utilizzando uno strumento grafico.

La mia raccomandazione:se facendo rich client utilizzo di GTK sta per essere una parte significativa del suo lavoro/hobby quindi imparare GTK, in quanto si sarà bisogno di scrivere il codice di un giorno.

P. S.Personalmente trovo Stetic per essere superiore a Glade per il lavoro di progettazione, se un po ' più instabile.

Altri suggerimenti

Utilizzare GtkBuilder invece di Glade, è integrato in Gtk invece di una libreria separata.

Il vantaggio principale di Glade è che è molto, molto più facile creare l'interfaccia.È un po ' più di lavoro per collegare i gestori di segnale, ma non ho mai sentito che conta molto.

Glade è molto utile per la creazione di interfacce, significa che si può facilmente cambiare l'interfaccia grafica senza fare molto di codifica.Troverete che se si vuole fare qualcosa di utile (ad es.costruire un treeview) si dovrà familiarizzare con le diverse parti del GTK documentazione, in pratica trovare un buon tutorial/esempi.

Ho iniziato utilizzando radura, ma presto si trasferisce a semplicemente facendo tutto in codice.Glade è bello per le cose semplici, ed è un bene quando si sta imparando come GTK organizza il widget (come le cose sono confezionati, ecc).La costruzione di tutto il codice, tuttavia, si hanno molta più flessibilità.Inoltre, non hanno la radura di dipendenza.

Io di solito inizio con Glade fino a quando vengo a un punto in cui non ha le caratteristiche di cui ho bisogno, ad esempiocreazione di una procedura guidata.Fintanto che sto utilizzando lo standard widget che Glade fornisce, non c'è davvero alcun motivo per mano il codice della GUI.

Il più comodo che diventare come Glade formati di codice, il meglio la mia mano-codifica diventa.Per non parlare, è molto facile da usare Glade per rendere il quadro sottostante, così non devi preoccuparti di tutte le inizializzazioni.

Se si sta scrivendo una tradizionale applicazione GUI che permette di riutilizzare un sacco di componenti standard GTK+ (pulsanti, etichette, contenitori, ecc.) Mi piacerebbe andare personalmente con Glade + Kiwi (per comodità framework per la creazione di GUI GTK+ applicazioni).

Il più grande vantaggio di utilizzare la Radura è che si riduce notevolmente il layout/imballaggio codice.Ecco un modo estremamente semplice esempio che mostra già i problemi con manualmente la posa di una GUI (senza nessun utilizzo di funzioni di supporto):

container = gtk.HBox()
label = gtk.Label(str="test")
container.add(label)

Per ulteriori esempi di prendere un guarda qui.Anche se si sta scrivendo un complicato widget personalizzato, è possibile creare un segnaposto nella Radura e sostituire che dopo la creazione dell'istanza.

Non dovrebbe essere troppo lungo ora per la Radura team di rilasciare una nuova versione del progettista (3.6.0).Questa nuova versione aggiunge il supporto per GtkBuilder, che sostituisce libglade (l'attuale biblioteca, che trasforma la Radura file XML in un widget albero).La nuova Radura designer, ancora una volta, aggiunge il supporto per la definizione di cataloghi (set di widget) in Python, in modo che si può facilmente aggiungere il proprio widget personalizzati.

Mi consiglia di utilizzare Glade per lo sviluppo rapido, ma non per l'apprendimento.Perché?perché alcune volte è necessario mettere a punto alcuni widget per lavorare come si desidera che il lavoro, e se sai di non sapere/capire le caratteristiche di attributi di ogni widget quindi vi troverete in difficoltà.

Per una rapida e semplice schermi uso Radura.Ma per qualcosa che ha bisogno di più livelli di controllo, ho creato un custom classi per quello che ho effettivamente bisogno (questo è importante, perché è troppo facile farsi trasportare via con generalizzazioni).

Con un magro applicazioni specifiche classi, può rapidamente cambiare il look and feel dell'applicazione ampia da un unico luogo.Un po ' come usare i CSS per mantenere la coerenza per i siti web.

Personalmente mi sento di raccomandare di codifica di fuori di esso, invece di usare Glade.Sto ancora imparando python e pyGtk, ma devo dire che la scrittura di UI con la mano mi ha dato un sacco di informazioni su come funzionano le cose sotto il cofano.

Una volta che hai imparato io direi di dare radura, o altri designer dell'interfaccia utente di un tentativo, ma sicuramente imparare a fare il "duro" modo di prima.

In primo luogo, iniziare a mettere questo in prospettiva.

Si utilizza GTK.Questo è un enorme libreria C, costruito nel 1993, utilizzando le migliori tradizioni del 1970 stile di codifica.E ' stato costruito per aiutare a implementare il GIMP, Photoshop concorrente di wanna-essere con interfaccia utente errori di leggenda.Un tipico gui campo potrebbe avere quaranta o più parametri, per lo più ripetitive, avendo getter e setter.Ci sarà dolore.

Il GTK gestisce una completa tipo dinamico del sistema in C utilizzando GObject.Questo rende il debug di una gioia speciale che richiede manualmente a piedi attraverso un array di puntatori ai metodi pieno di argomento generico liste con implicita eredità.Sarà anche saltando attraverso Pango librerie quando meno te lo aspetti, per esempio, utilizzando un Pango costante per cui in un'etichetta con i puntini di sospensione quando la pagina è piccolo.Aspettatevi di più il dolore.

Ormai, si sono probabilmente giurando di avvolgere tutto il GTK interazioni in un Model-View-Controller di architettura per l'applicazione specifica.Questo è un bene.

Utilizzando Radura, o gtkBuilder, o Stetic, aiuterà corallo l'enorme problema di accoppiamento di una quarantina di parametri a una funzione.Glade fornisce una base GUI builder per trascinare e rilasciare i componenti insieme.I parametri e i parametri ereditati sono un po ' separati.L'uscita di Glade è .glade file XML che verrà poi letta, collegare il callback ("gestori di segnale") a nome identico funzioni, e di una query o di aggiornamento in memoria la versione di XML per ottenere i widget quindi utilizzare pyGTK per manipolare.Radura di per sé è un scricchiolante e non ben mantenuto.

Utilizzando pyGTK ti dà fastidiosamente controllo minuzioso per creare l'interfaccia grafica.Questo sarà dettagliato, copia-e-incolla il codice.Ogni attributo sarà un chiamata di funzione.L'attributo setter non restituisce nulla, così il concatenamento di chiamate è fuori questione.Di solito, l'IDE darà solo un minimo aiuto su cosa funzioni di media ed essere costantemente riferimento a DevHelp o di qualche altro strumento.

Sarebbe quasi da sperare Gui GTK erano destinate a fallire.

Si può usare glade-2 per la progettazione e l'uso glade2py.py per la generazione di puro pygtk codice, non utilizzare pygtkcompat a supporto gtk3

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top