Go本地平台GUI库一个简单的示例

package main

import (
    "fmt"
    "github.com/andlabs/ui"
)

func myMain() {
    var w *ui.Window

    w = ui.NewWindow("Test", 400, 100) //创建窗口
    ui.AppQuit = w.Closing             //程序关闭,同时关闭主窗口
    ed1 := ui.NewLineEdit("Text")      //创建单行文本编辑框
    btn1 := ui.NewButton("Click")      //创建按钮

    g := ui.NewGrid(1, //创建网格,用来存放控件。这里可以多个网格嵌套的,只需要设置一下被显示的网格就行
        ed1,
        btn1)
    g.SetStretchy(0, 0) //设置网格里0,0位置的控件为被缩放控件
    g.SetFilling(1, 0)  //将1,0位置的控件设为填充区域

    w.Open(g) //设置主显示的网格

mainloop:
    for {
        select {
        case <-w.Closing:
            break mainloop
        case <-btn1.Clicked: //按钮点击触发的事件
            fmt.Println("按钮被点击", ed1.Text())
        }
    }
}

func main() {
    err := ui.Go(myMain)
    if err != nil {
        panic(fmt.Errorf("error initializing UI library: %v", err))
    }
}

看了半小时总算理解这个库的窗口创建过程了……

作者竟然一个DOC也没给,全是旧版的。。。

具体例子请看上面的源码

站内链接:http://golangtc.com/t/5391ae47320b524564000014

Github页面:https://github.com/andlabs/ui

运行结果:
我是图

这个库目前还处于开发阶段,所以各种控件缺失就先不说,发现一个很大的问题就是你没法做到横向排列两个等宽的控件(要求占满窗口)

当然也可能是我没找到方法

从作者写的一大推TODO就知道这个项目的开发进度了……

共 9 个回复


Bluek404

有啥理解错误还请指出哈

# 0

captain

这个库现在更新挺勤快的

# 1

katucha

小白弱问:目前有没有公认比较好的windows ui库啊

# 2

kzzhr

go install 的时候编译报错了。

# 4

Bluek404

@kzzhr 直接get就行啊

# 5

snake117

太复杂了,go需要一个GUI,但不需要那么高大上的GUI。

我认为twitter程度已经很好了,甚至更简单一些就可以了。

别忘了go的接口不是摆设,go的GUI库只需要实现简单的窗口逻辑和基本的控件就足够了,高级控件完全可以做成额外的库。

# 6

yinqunjun

现在这个库在windows下无法使用 我的环境是win7

# 7

Bluek404

@yinqunjun 直接和作者说吧

# 8