Golang GUI入门——andlabs ui
来源:互联网 发布:nfc扫描身份证软件 编辑:程序博客网 时间:2024/05/22 03:26
官方不提供gui标准库,只好寻求第三方库。
https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。
第三方gui库
找了好多,也比较了好多,最终决定使用的是还是
https://github.com/andlabs/ui
相信golang gui还会发展的更好,期待更优秀的gui库
由于andlabs-ui是基于andlabs-libuip写的,所以还需要
https://github.com/andlabs/libui
其它一些三方gui库,可查看
http://awesome-go.com/#gui
安装gui库
方式一:可能通过github网站,直接下载ui、libui两个库的zip包,然后放到你go的工作目录下,然后引用即可。
方式二:通过执行命令go get github.com/andlabs/ui、go get github.com/andlabs/libui直接下载到go工作目录下。
方式三:通过git clone到本地,再放到go工作目录下。
执行例子
测试代码:
main.go
package mainimport ( "github.com/andlabs/ui")func main() { err := ui.Main(func() { name := ui.NewEntry() button := ui.NewButton("Greet") greeting := ui.NewLabel("") box := ui.NewVerticalBox() box.Append(ui.NewLabel("Enter your name:"), false) box.Append(name, false) box.Append(button, false) box.Append(greeting, false) window := ui.NewWindow("Hello", 200, 100, false) window.SetChild(box) button.OnClicked(func(*ui.Button) { greeting.SetText("Hello, " + name.Text() + "!") }) window.OnClosing(func(*ui.Window) bool { ui.Quit() return true }) window.Show() }) if err != nil { panic(err) }}
go run 执行测试代码
C:\Users\aaron>go run E:\0Develop\Go\work\src\gui-temp\main.go# github.com/andlabs/uiE:/0Develop/Go/work/src/github.com/andlabs/ui/libui_windows_amd64.a(stddialogs.cpp.obj): In function `msgbox':E:/github.com/andlabs/libui/windows/stddialogs.cpp:113: undefined reference to `__imp_TaskDialog'collect2.exe: error: ld returned 1 exit status
抛出异常!
解决undefined reference to `__imp_TaskDialog’
看问题讨论
https://github.com/andlabs/ui/issues/147
https://github.com/andlabs/ui/issues/190
windows需要的一些环境。
https://github.com/andlabs/ui/issues/159
windows下这个问题仍然解决不了,得找其它gui了。
有朋友如果知道怎么解决这个问题,也麻烦告知一下,谢谢。
- Golang GUI入门——andlabs ui
- 本文主要讲述golang的gui库andlabs/ui使用
- Golang入门——第一个程序Hello Golang
- Python GUI——Tkinter~简单入门
- Unity3D入门篇——GUI控件
- python入门系列19―——GUI wxpython入门
- python入门系列20―——GUI Tkinter入门
- golang的web框架—beego入门简介
- Golang xui UI库
- 黑马程序员——GUI入门,初级操作
- Unity3D入门——GUI的Label控件
- Unity3D入门——GUI之Button和RepeatButton控件
- Unity3D入门——GUI之TextField和PasswordField控件
- GUI入门
- Android入门——基本UI设计
- Android UI 开发入门—线性布局
- UI那点事—从我的经历看GUI发展
- UI,GUI,ID,UE
- 如何查看linux发行版版本信息
- 静态变量与成员变量的区别
- [已解决]Exception while doing past iteration backup错误的处理
- 单例模式
- 原型模式(Prototype)
- Golang GUI入门——andlabs ui
- LINUX学习笔记
- php链接数据库类
- 尾递归优化
- GitHub基础
- 第十二周十进制转二进制
- 延长FLASH和EEPROM芯片写入次数的小方法
- C语言笔试一
- 最短路径的算法的学习