C(99) gtk 04 - label,button e entry

21
Label,Button,Entry * http://corsogtk.chipsy.it/

description

Utilizzo dei widget : Label,button ed entry. Un rapido sguardo anche sui principali widget derivati da essi

Transcript of C(99) gtk 04 - label,button e entry

Page 1: C(99) gtk   04 - label,button e entry

Label,Button,Entry

*http://corsogtk.chipsy.it/

Page 2: C(99) gtk   04 - label,button e entry

*

Page 3: 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");

Page 4: C(99) gtk   04 - label,button e entry

*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-

Page 5: C(99) gtk   04 - label,button e entry

*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

Page 6: C(99) gtk   04 - label,button e entry

*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

Page 7: C(99) gtk   04 - label,button e entry

* è 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

Page 8: C(99) gtk   04 - label,button e entry

*

Page 9: C(99) gtk   04 - label,button e entry

*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.

Page 10: C(99) gtk   04 - label,button e entry

*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)

Page 11: C(99) gtk   04 - label,button e entry

*

Page 12: C(99) gtk   04 - label,button e entry

* 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)

Page 13: C(99) gtk   04 - label,button e entry

*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

Page 14: C(99) gtk   04 - label,button e entry

*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")

Page 15: C(99) gtk   04 - label,button e entry

*

Page 16: C(99) gtk   04 - label,button e entry

*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.

Page 17: C(99) gtk   04 - label,button e entry

*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"

Page 18: C(99) gtk   04 - label,button e entry

*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

Page 19: C(99) gtk   04 - label,button e entry

*

Page 20: C(99) gtk   04 - label,button e entry

*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.

Page 21: C(99) gtk   04 - label,button e entry

*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);