Guida Gtk+ a puntate ( XII parte )
Ok, le puntate continuano e gli argomenti avanzano. Adesso siamo arrivati all’argomento pulsanti ( o bottoni che dir si voglia ) molto utili e quasi indispensabili per un’applicazione in Gtk+.
Questo argomento non è complicatissimo e conto di finire tutti i tipi di pulsanti esistenti in questa puntata. Quindi.. Relax
Pulsanti Classici ( Button )
Iniziamo con i pulsanti classici, ovvero i più comuni che possono contenere solo del testo o anche un’immagine al loro interno.
Si possono creare con tre funzioni:
- gtk_button_new () → Crea un pulsante vuoto, senza testo e senza immagine così da poter settare le varie caratteristiche in seguito.
- gtk_button_new_with_label () → Crea un pulsante con del testo, si può anche qui naturalmente aggiungere un’immagine in seguito.
- gtk_button_new_from_stock () → Crea un pulsante con immagine e testo predefinito di una “STOCK”. Una stock è un elemento interno alle Gtk+ che comprende un’icona e un testo standard, il testo delle stock ha il vantaggio di essere tradotto automaticamente nella lingua del sistema. Le Stock esistenti ed utilizzabili si possono esaminare in questa pagina.
Vediamo un esempio di pulsante creato “from stock”:

Come si può vedere però è presente il bordo del pulsante, cioè l’effetto rilievo che lo fa risultare come parte esterna al resto dell’applicazione ( prendete ad esempio la barra a comparsa che esce quando si cerca una parola in firefox, il pulsante per chiuderla non è in rilievo ).. per fare in modo che non sia in rilievo o per cambiare il tipo di rilievo si utilizza l’attributo “relief” tramite la funzione gtk_button_set_relief.
I segnali collegabili a questo tipo di pulsanti, che è il padre di tutti gli altri che tra poco vedremo, sono:
- “activated” – viene emesso quando il pulsante è premuto o rilasciato.
- “clicked” – viene emesso quando il pulsante è premuto e rilasciato
- “pressed” – viene emesso quando il pulsante è premuto
- “clicked” – viene emesso quando il pulsante è rilasciato
Pulsanti “Toggled” ( ToggledButton )
I pulsanti di tipo “toggled” sono quei pulsanti che una volta premuti rimangono premuti e non ritornano “su” finchè non vengono ripremuti. Non si possono creare “from stock” ma solo con testo o senza niente.
Per impostare il loro stato manualmente su “premuto\giù” o “rilasciato\su” si può usare la funzione gtk_toggle_button_set_active.
Il segnale aggiuntivo che ha questo tipo rispetto al precedente è quello “toggled” che viene emesso quando il pulsante cambia stato.
Pulsanti di Controllo ( CheckButton )
I “Pulsanti di Controllo” ( che vi prego di farmi chiamare col loro nome originario “CheckButton” perché questa italianizzazione non mi piace per niente ) sono molto importanti specialmente nelle “preferenze” di un programma.
Sono una sottocategoria dei Toggled e ne ereditano tutte le caratteristiche. Quindi non possono essere creati “from stock” ed hanno anch’essi il segnale aggiuntivo “toggled”.
Pulsanti per la selezione di un colore ( ColorButton )
Non è un pulsante comunissimo lo devo ammettere, ma comunque può tornare utile. Può essere creato vuoto, così da settare i vari attributi successivamente, oppure con un colore predefinito ( se non lo si setta viene messo il nero ) a scelta. Per farlo bisogna utilizzare un GdkColor in questo modo:
1 2 3 4 5 6 7 | GtkWidget *color_button; GdkColor color; if ( gdk_color_parse ("#990000", &color) ) color_button = gtk_color_button_new_with_color (&color); else color_button = gtk_color_button_new (); |
Per poi ottenere il colore si può utilizzare la funzione gtk_color_button_get_color.
Pulsanti per la selezione di un font ( FontButton )
Questo pulsante è ancor meno comune del p
recedente, serve per far selezionare un font all’utente.. apre una finestra ( che in futuro ritroveremo ) dove selezionare il font preferito. La sua creazione può avvenire tramite gtk_font_button_new_with_font che ha come parametro il nome del font da inserire come predefinito, ad esempio con “Monospace 10″ avremo selezionato il font monospace a dimensione 10.
Pulsanti per link ( LinkButton )
Questi pulsanti si ritrovano spesso nei dialoghi di informazione per creare un collegamento al sito o alla pagina dedicata al programma. La parte più difficile nella gestione di questi pulsanti è l’apertura del link in questione, ma potete prendere spunto da questa funzione che avevo fatto per questi casi.
Pulsanti per il “volume” ( Volume Button )
Concludiamo questo tour tra i pulsanti con quelli per il “volume” ( anche se possono essere usati in molti altri casi ). Questo tipo di pulsanti comprende una sola funzione che consente la loro creazione, ovvero: gtk_volume_button_new.
Ciò avviene perchè questo tipo è un sottotipo del tipo “ScaleButton”, quindi le funzioni riferite al gruppo padre devono venir usate per operare con questo figlio.
Fine Dodicesima Puntata
Mi dispiace un po’ aver già finito, ci ho messo tanto a fare le finestre, i contenitori e tutto il resto del mondo e per i pulsanti che ritengo più interessanti c’è poco da dire, vabbè alla prossima
.
Ciauz
scusa ma mi è sorto un dubbio: ma per i checkbutton quali sono gli argomenti?? perchè nell’html devono stare sotto una categoria…..grazie in anticipo
Per creare un checkbutton esistono principalmente due funzioni:
- gtk_check_button_new () – non riceve argomenti restituisce una semplice casella di tick senza nessun testo
- gtk_check_button_new_with_label () – riceve come argomenti il testo da visualizzare di fianco alla casella di tick.
Non esistono gruppi per racchiuderli, se vuoi che se ne abilitano max N o altre cose devi gestirteli manualmente tramite segnali. Se vuoi invece fare qualcosa ad esclusione meglio i radiobutton
a si giusto mi ero confuso con i radio button -.-’