golang 开发gui,还真有gui的框架,就是做个简单的行

1,关于gui



golang 还真的有gui的开发框架。在mac上面好像比较简单。直接用就好。
不知道在其他平台上面咋样。
github项目地址:
https://github.com/andlabs/ui/wiki/Getting-Started
起重核心还是使用了:https://github.com/andlabs/libui
在github上面加星的还是挺多的。非常的活跃的项目。
doc文档:
https://godoc.org/github.com/andlabs/ui
其他的想好想也没有啥了。感觉上wxWidgets应该也是跨平台的。
https://github.com/dontpanic92/wxGo 也有一个哥们做的封装。
但是看了下加星的比较少呢。还是用andlabs/ui的吧。

2,andlabs gui的hello world



安装:
go get github.com/andlabs/ui

package main

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

func main() {
    err := ui.Main(func() {
        name := ui.NewEntry()
        button := ui.NewButton("测试")
        greeting := ui.NewLabel("")
        box := ui.NewVerticalBox()
        box.Append(ui.NewLabel("输入姓名:"), false)
        box.Append(name, false)
        box.Append(button, false)
        box.Append(greeting, false)

        //创建window窗口。并设置长宽。
        window := ui.NewWindow("第一个应用程序。", 600, 500, false)
        //mac不支持居中。
        //https://github.com/andlabs/ui/issues/162
        window.SetChild(box)
        button.OnClicked(func(*ui.Button) {
            //可以直接打印日志。
            fmt.Println("get name :", name.Text())
            greeting.SetText("Hello, " + name.Text() + "!")
        })
        window.OnClosing(func(*ui.Window) bool {
            ui.Quit()
            return true
        })
        window.Show()
    })
    if err != nil {
        panic(err)
    }
}

感觉上andlabs ui 比较简单,只能做些最基本的东西。
做个简单的还行,要是复杂的就不行了。

看了下源代码不多。使用了封装好的libui的库。支持windows mac linux系统。
因为是c写的感觉上和go结合的还是挺紧密的。

3,wxGo

安装 wxGo。
在国内要安装 https://github.com/dontpanic92/wxGo 项目不然 andlabs 快。
经常会报错,超时。主要是因为这个库太大了,有 91 MB。
而且库支持 windows linux mac 所以lib是三个库都有。
最好的办法是直接下载 zip 文件,然后解压缩到 $GOPATH/src/github.com/dontpanic92/wxGo 这个目录下面然后安装。

go install github.com/dontpanic92/wxGo/wx

会报错一些warning 信息。但是可以安装过去。
然后就可以跑测试下demo了。

package main

import "github.com/dontpanic92/wxGo/wx"

func main() {
    wx.NewApp()
    f := wx.NewDialog(wx.NullWindow, -1, "Hello World")

    bSizer := wx.NewBoxSizer(wx.VERTICAL)

    checkBox := wx.NewCheckBox(f, wx.ID_ANY, "Check Me!", wx.DefaultPosition, wx.DefaultSize, 0)
    bSizer.Add(checkBox, 0, wx.ALL|wx.EXPAND, 5)

    textCtrl := wx.NewTextCtrl(f, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0)
    bSizer.Add(textCtrl, 0, wx.ALL|wx.EXPAND, 5)

    f.SetSizer(bSizer)
    f.Layout()
    f.ShowModal()
    f.Destroy()
}

代码里面包括了好结果sample。aui.

一个超级复杂的界面。就是wxWidgets 的风格呢。
思路也是使用 http://www.swig.org/
swig的思路j进行封装的。作者也说明了这点。
工程也是个庞大的过程。把3 个平台的lib库都编译了。

4,总结



本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/60141345 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

做个简单的测试工具啊。做个服务检查的工具啊,接口的测试工具啊。
简单的可以使用 andlibs ui,因为简单点。lib库小安装,开发方便。
要是开发一个复杂的项目可以使用 wxGo 类库丰富。
想咋开发都可以。

时间: 2024-12-21 23:09:59

golang 开发gui,还真有gui的框架,就是做个简单的行的相关文章

开发基于XML的Selenium自动化测试框架

为解决该群体的困扰,本文将介绍如何让不熟悉编程的业务http://www.aliyun.com/zixun/aggregation/9621.html">测试人员也能编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍. 本文适用于需要为测试团队开发自动化回归测试框架的测试设计开发人员.目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要测试人员熟悉开发编程语言.但是过高的编程门槛让很多测试人员只能对自动化测试驻足遥望.为解决该群体的困扰,本文将介绍一种基于 X

asp.net微信公众平台开发(二) 多层架构框架搭建和入口实现

上篇已经设计出比较完善的数据库了,这篇开始进入代码.  首先把上篇设计的数据库脚本在数据库中执行下,生成数据库,然后在VS中建立项目,为了方便理解和查看,我设计的都是很直白的类名和文件名,没有命名空间前缀. 采用接口方式,共8个项目:7个类库和一个MVC项目,  分别为: 显示层--MVC项目 业务逻辑层--访问接口IBLL.具体实现BLL 数据访问层--访问接口IDAL.具体实现DAL 数据(模型)--DataModel 通用方法--Common 仓储--Factory 这里的仓储并不为了生产

插件框架 osgi mef-想请教下大神们插件式开发有什么好的插件框架?

问题描述 想请教下大神们插件式开发有什么好的插件框架? 我目前知道的有osgi,微软的maf.mef.除此之外还有些什么框架?还有目前应用最广泛的是什么框架 解决方案 Unity和MEF因为是微软出的,用的比较多一些.其实单纯插件系统,自己用反射就可以实现了.这些框架严格来说,是用于比较复杂的依赖注入(dependency injection)的.当然,插件系统也可以算依赖注入的一个用例. 解决方案二: dll plugin算不算 解决方案三: Unity Autofac Ninject Str

使用IntelliJ IDEA开发SpringMVC网站(二)框架配置

原文:使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 摘要 讲解如何配置SpringMVC框架xml,以及如何在Tomcat中运行 目录[-] 文章已针对IDEA 15做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码. 五.SpringMVC框架配置 1.web.xml配置 2.xxx-servlet.xml配置 转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生). 注:此文承接上一文:使用IntelliJ IDEA开发Spring

Dojo前端开发中非常优秀的Ajax框架之一

在应用中我们可能会碰见这样的情况,我们需要在一个图表上展示包含多个维度的信息,随着维度的增加,我们会发现一般的图表无法充分和直观的展现这些信息.如企业经营状况各项指标数据的分析以及http://www.aliyun.com/zixun/aggregation/8172.html">用户行为各项特征的数据分析等.在最近的应用中我也遇到了这样的情况,经过分析发现,对于这类数据,使用蜘蛛图来展示能达到非常直观的效果.因为蜘蛛图能直观的展示数据的变动趋势和差异对比.在用来绘制蜘蛛图的第三方类库和框

更新-有一个关于gui的问题,楼主在做一个进销存的管理系统!大神求救

问题描述 有一个关于gui的问题,楼主在做一个进销存的管理系统!大神求救 具体情况是这样的,用的是cardlayout布局,在一个新增物品的panel里加了一个物品,怎么样才能让另一个显示所有物品的panel里动态的更新呢,这两个jpanel是在同一层的!

网络通信应用开发利器!—— ESPlus —— ESFramework通信框架的增强库

概述 ESPlus 是基于网络通信框架ESFramework通信框架通信框架的增强库.为了更贴近实际应用,加快网络通信系统的开发,ESPlus在ESFramework通信框架原生功能的基础上,进行了再次封装,提供了大多数通信系统中经常用到的组件和功能.在这些功能中,最主要的是:自定义信息.基础API与状态通知.文件传送.P2P框架.好友关系.组关系.Rapid引擎.  1.自定义信息 使用通信框架最基础的需求就是收发信息,ESPlus底层已经为我们封装好了所有与信息收发相关的操作,我们只要调用I

源码-用javaSSH框架做一个简单的登录功能

问题描述 用javaSSH框架做一个简单的登录功能 用SSH框架做一个简单的登录功能,登录成功则跳转到一个页面,登录失败则跳转到一个失败页面,MySQL数据库.求大神指点,最好能提供源码 解决方案 Spring 3.x 企业应用开发实战的第一个例子就符合你的要求了.Mysql+srping3 解决方案二: 告诉我你的扣扣邮箱,我发你邮箱 解决方案三: 主要还是在struts2 里面,处理业务逻辑,再跳转到指定页面,关键在struts,xml配置文件里面

CI框架入门之MVC简单示例_php实例

本文实例讲述了CI框架入门之MVC简单示例.分享给大家供大家参考,具体如下: 最简单的CI模型: 注意:模型需要用到数据库 配置文件在appcation/config.php 这里我们要用到数据库,需要将databases.php中的相关参数填写一下,具体不再赘述. 直接进入主题: MVC: 1.首先谈"M" 模型 CI中的模型存放在application/models文件夹里 命名规则是:类名_model.php 文件中只包含一个类: 如: class Nb_model extend