C(99) gtk 04 - label,button e entry
-
Upload
maurizio-carboni -
Category
Education
-
view
271 -
download
0
description
Transcript of C(99) gtk 04 - label,button e entry
*
*Le label sono dei contenitori di testo, questo
testo viene visualizzato e non può ne essere
selezionato dall’utente o modificato per via
diretta.
*Per crearle dobbiamo usare la funzione
area_testo = gtk_label_new("testo inziale");
*Possiamo cambiare il contenuto in qualsiasi
momento usando la funzione
gtk_label_set(area_testo,"nuovo testo");
*Avere dei testi tutti della stessa dimensione ,
carattere e colore, è una cosa brutta da
vedere! per fortuna esiste una funzione molto
semplice che ci aiuta a personalizzare ogni
singola label.
*Questa funzione è
gtk_label_set_markup(area_testo,"<span foreground='green'>Testo verde</span>");
Questa funzione ci permette di gestire la label come
che la visualizzi un browser e quindi con una sintassi
simile all’HTML.
Questo linguaggio di markup si chiama Pango markup
format-
*Alcuni elementi base del linguaggio «Pango markup
format» :
* <span></span> possiamo dargli degli attributi inserendoli
tra <span e >
ciò che è contenuto tra <span> e </span> è il testo che
deve essere mostrato
*Attributi :
*foreground (o fgcolor o color)
colore del testo, può essere il nome inglese del colore o in
formato HTML (#FFFFFF , RGB, il colore è diviso in 3 colori
scritti in esadecimale, il primo FF è il Rosso, secondo Verde,
terzo Blu)
*background (o bgcolor)
colore dello sfondo
*font
Nome della font usata e dimensione ad esempio : Sans Italic
12
*font_family (o face)
Nome della font usata (da solo)
*font_style (o style)
Stile del font ('normal', 'oblique', 'italic')
*font_weight (o weight)
Grossezza del testo ('ultralight', 'light', 'normal', 'bold', 'ultrabold', 'heavy')
esprimibile anche con un numero volendo
*underline
Se il testo deve essere sottolineato : 'none', 'single', 'double',
'low', 'error‘
*underline_color
Colore della linea di sottolineatura
* è possibile usare dei tag diversi da <span> in modo da
dover scrivere meno codice, questi tag assegnano
velocemente una proprietà e non hanno attributi :
* <b>Ciao</b> Grassetto
* <i>Ciao</i> Corsivo
* <u>Ciao</u> Sottolineato
* <s>Ciao</s> Barrato
* <sub>Ciao</sub> Pedice
* <sup>Ciao</sup> Apice
* <small>Ciao</small> Diminuisce la dimensione
* <big>Ciao</big> Aumenta la dimensione
* <tt>Ciao</tt> Font monospace
*
*Per creare un bottone dobbiamo usare :
* bottone = gtk_button_new();
* bottone = gtk_button_new_with_label("Testo bottone");
* e infine
* bottone = gtk_button_new_with_mnemonic ("&Cliccami");
*Quest’ultimo modo di crearlo è quello migliore,
infatti in questo modo la lettere subito dopo «&»
viene sottolineata e calcando ALT+quella lettera, si
schiaccia il bottone.
*Possiamo anche aggiungere un’immagine al
bottone, per fare questo dobbiamo prima
abilitare il bottone a mostrare le immagini :
*e dopo assegnarli un GtkImage (si quelle dell’altra
presentazione)
gtk_button_set_image (mio_bottone,mia_immagine);
*Per assegnare una funzione al bottone in modo che
quando clicchiamo venga eseguita dobbiamo
connettere il segnale "button-release-event" (vedi
presentazione 1)
*
* I Toggle button son dei bottoni che quando vengono
premuti restano premuti, e quando vengono
ripremuti tornano come erano all’inizio :
Per crearli possiamo usare :
* my_button = gtk_toggle_button_new ()
* my_button = gtk_toggle_button_new_with_label ()
* my_button = gtk_toggle_button_new_with_mnemonic ()
Per sapere quando vengono premuti abbiamo l’evento
"toggled"
e per sapere se son attualmente premuti possiamo usare
schiacciato = gtk_toggle_button_get_active (my_button)
quello che otteniamo è un valore boolean (TRUE/FALSE)
*I check button son quelli che comunemente
chiamiamo bottoni a spunta o checkbox :
Per crearli possiamo usare :
* my_button = gtk_check_button_new ()
* my_button = gtk_check_button_new _with_label ()
* my_button = gtk_check_button_new _with_mnemonic ()
Per sapere quando vengono premuti abbiamo l’evento
e se son premuti dobbiamo usare le funzioni del
toggle button appena visto
*Altro figlioletto che potrebbe tornarci utile è il
link button, questo bottone mostra un
collegamento a un sito che può essere cliccato
Per crearlo possiamo usare :
* my_button = gtk_link_button_new ("http://sito.com")
* my_button = gtk_link_button_new_with_label ("http://sito.com","Testo collegamento")
*
*L’entry è un’area di testo in cui l’utente può
scrivere, possiamo crearle con le seguenti
funzioni :
* area_testo = gtk_entry_new ();
* area_testo = gtk_entry_new_with_max_length (20);
*Nel secondo modo l’utente non potrà inserire più di
20 caratteri, cosa molto utile se dobbiamo
memorizzare il suo contenuto in un vettore di
caratteri di lunghezza fissa.
*Per inserire noi testo nell’entry da codice
abbiamo 3 funzioni :
1. gtk_entry_set_text (area_testo,"ciao")
2. gtk_entry_append_text (area_testo,"ciao")
3. gtk_entry_prepend_text (area_testo,"ciao")
Che rispettivamente :
1. Imposta il testo a "ciao"
2. Aggiunge alla fine del testo già contenuto "ciao"
3. Aggiunge all’inizio del testo già contenuto "ciao"
*Se invece vogliamo prendere il testo contenuto
nell’entry abbiamo a disposizione 2 utili
funzioni :
1. testo = gtk_entry_get_text(area_testo);
2. lunghezza = gtk_entry_get_text_length (area_testo);
Che rispettivamente :
1. Mi da il testo contenuto nell’entry
2. Mi da la lunghezza del testo contenuto nell’entry
Nota :
La prima funzione restituisce un *char
*
*Lo spinbutton è il figlio dell’entry che torna più utile per l’input di numeri.
*Di default questo widget accetta solo numeri dall’utente, tuttavia è impostabile perché accetti anche lettere.
*Per crearlo possiamo usare :
my_edit = gtk_spin_button_new_with_range (10,100,5);
I parametri sono :
1. Valore minimo dello spinbutton
2. Valore massimo dello spinbutton
3. Di quanto deve variare il valore premendo dei bottoni
*Esiste anche la funzione classica di creazione dello spinbutton ma comporta che prima dobbiamo creare anche un GtkAdjustment cosa che a noi risoluta scomoda.
*Per leggerne il contenuto abbiamo a
disposizione 2 funzioni :
1. double num = gtk_spin_button_get_value (my_edit)
2. int num = gtk_spin_button_get_value_as_int (my_edit)
* Invece per settarne il valore abbiamo :
* gtk_spin_button_set_value(my_edit,10.20);