Oggi vedremo come usare una delle poche librerie Gtk per golang.
Prima di tutto installiamo il nostro pacchetto il bello di golang è possibile farlo grazie a questa semplice istruzione:
1 |
go get github.com/mattn/go-gtk/gtk |
Questa istruzione potrebbe creare un errore, se non sono state installate le librerie necessarie.Per questo io consiglio di usare ubuntu che per la risoluzione di questi problemi è fatto molto bene ed facile da usare (apt-get install [nome della lib]).
Dopo aver fatto ciò per usare la libreria basta fare solamente un import
1 |
import "github.com/mattn/go-gtk/gtk" |
Qui vediamo un esempio scritto sempre dal creatore della lib con aggiunta dei miei commenti 😀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package main //Importo Librerie import ( "os" "github.com/mattn/go-gtk/gtk" ) func main() { //Gtk Inizializzazione gtk.Init(&os.Args) //Creo una finestra e setto il titolo in Alignment piu evento per chiudere la finestra window := gtk.Window(gtk.GTK_WINDOW_TOPLEVEL) window.SetTitle("Alignment") window.Connect("destroy", gtk.MainQuit) //Creo un oggetto Notebook e aggiungo alla finestra notebook := gtk.Notebook() window.Add(notebook) //Aggiungo una pagina notebook di nome Alignment align := gtk.Alignment(0.5, 0.5, 0.5, 0.5) notebook.AppendPage(align, gtk.Label("Alignment")) //Creo un oggetto tasto e setto la scritta "Hello World!" e aggiungo alla finestra button := gtk.ButtonWithLabel("Hello World!") align.Add(button) //Aggiungo una pagina notebook di nome Fixed fixed := gtk.Fixed() notebook.AppendPage(fixed, gtk.Label("Fixed")) //Aggiungo un bottone nella pagina Fixed button2 := gtk.ButtonWithLabel("Pulse") fixed.Put(button2, 30, 30) //Creo un oggetto ProgressBar progress := gtk.ProgressBar() fixed.Put(progress, 30, 70) //Colleggo il button a questa funzione quando evento = clicked button.Connect("clicked", func() { progress.SetFraction(0.1 + 0.9*progress.GetFraction()) //easter egg }) //Collego il button2 a questa funzione quando evento = clicked button2.Connect("clicked", func() { progress.Pulse() }) //Mostro tutte le finestre e setto la principale a 200 x 200 window.ShowAll() window.SetSizeRequest(200, 200) gtk.Main() } |