Здесь так просто не разобраться, ведь golang gui это набор виджетов для создания приложений с пользовательским интерфейсом. Вам чтоб начать делать такие приложения, нужно обзавестись библиотекой gtk. Вам нужно плотно поработать с этой библиотекой.
Чтоб было, над чем работать, вот пример с gtk библиотекой.
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
package main import ( "gtk" ) func main() { gtk.Init(nil) window := gtk.Window(gtk.GTK_WINDOW_TOPLEVEL) window.SetTitle("gtk-go example") window.Connect("destroy", func(ctx *gtk.CallbackContext) { println(ctx.Data().(string)) gtk.MainQuit() }, "data for callback function") vbox := gtk.VBox(false, 1) frame := gtk.Frame("Demo") framebox := gtk.VBox(false, 1) frame.Add(framebox) entry := gtk.Entry() entry.SetText("<Name>") framebox.Add(entry) buttons := gtk.HBox(false, 1) button := gtk.ButtonWithLabel("Hello me") button.Clicked(func() { print("button clicked: ", button.GetLabel(), "\n") messagedialog := gtk.MessageDialog( button.GetTopLevelAsWindow(), gtk.GTK_DIALOG_MODAL, gtk.GTK_MESSAGE_INFO, gtk.GTK_BUTTONS_OK, "Hello, " + entry.GetText()) messagedialog.Response(func() { messagedialog.Destroy() }) messagedialog.Run() }) buttons.Add(button) framebox.Add(buttons) menubar := gtk.MenuBar() vbox.PackStart(menubar, false, false, 0) cascademenu := gtk.MenuItemWithMnemonic("_File") menubar.Append(cascademenu) submenu := gtk.Menu() cascademenu.SetSubmenu(submenu) menuitem := gtk.MenuItemWithMnemonic("E_xit") menuitem.Connect("activate", func() { gtk.MainQuit() }) submenu.Append(menuitem) cascademenu = gtk.MenuItemWithMnemonic("_Help") menubar.Append(cascademenu) submenu = gtk.Menu() cascademenu.SetSubmenu(submenu) menuitem = gtk.MenuItemWithMnemonic("_About") menuitem.Connect("activate", func() { dialog := gtk.AboutDialog() dialog.SetName("go-gtk library") dialog.SetProgramName("helloworlder 1.0") dialog.Run() dialog.Destroy() }) submenu.Append(menuitem) vbox.Add(frame) window.Add(vbox) window.SetSizeRequest(400, 100) window.ShowAll() gtk.Main() } |
Как по мне, так это самое малое приложение на gtk
1 2 3 4 5 6 7 8 9 10 11 |
package main import ( "os" "github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&os.Args) gtk.Main() } |
Разбираться лучше с малым объемом кода.
Забыли упомянуть, что в Goland, не только gtk является библиотекой, с возможностью создавать приложения, с пользовательским интерфейсом. Существуют еще Qt и другие
Кстати, библиотеку можно загрузить с https://github.com/mattn/go-gtk
Можно еще получить ее с помощью команды git clone https://github.com/mattn/go-gtk.git
alexandra_jones: Кстати, библиотеку можно загрузить с https://github.com/mattn/go-gtkМожно еще получить ее с помощью команды git clone https://github.com/mattn/go-gtk.git
@alexandra_jones Оно только под Linux или под Windows они тоже нормально встают ?
elena: @alexandra_jones Оно только под Linux или под Windows они тоже нормально встают ?
@elena Если скомпилируешь под windows, то должно в принципе без проблем встать