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了。
有朋友如果知道怎么解决这个问题,也麻烦告知一下,谢谢。

0 0
原创粉丝点击