可能因为我电脑上的mingw下只有gcc,没有g++的原因,之前用walk和andlabs都不成功

最后用github上gxui的sample代码终于编译出来一个丑陋的GUI,但编译过程也提示了一堆类似以下内容的东东:

note: expected 'LPCWSTR {aka const short unsigned int *}' but argument is of type 'CHAR * {aka char *}'
WINUSERAPI HANDLE WINAPI LoadImageW (HINSTANCE, LPCWSTR, UINT, int, int, UINT);
// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. package main import (
"time" "github.com/google/gxui"
"github.com/google/gxui/drivers/gl"
"github.com/google/gxui/gxfont"
"github.com/google/gxui/math"
"github.com/google/gxui/samples/flags"
) func appMain(driver gxui.Driver) {
theme := flags.CreateTheme(driver) font, err := driver.CreateFont(gxfont.Default, )
if err != nil {
panic(err)
} window := theme.CreateWindow(, , "Hi")
window.SetBackgroundBrush(gxui.CreateBrush(gxui.Gray50)) label := theme.CreateLabel()
label.SetFont(font)
label.SetText("Hello world") window.AddChild(label) ticker := time.NewTicker(time.Millisecond * )
go func() {
phase := float32()
for _ = range ticker.C {
c := gxui.Color{
R: 0.75 + 0.25*math.Cosf((phase+0.000)*math.TwoPi),
G: 0.75 + 0.25*math.Cosf((phase+0.333)*math.TwoPi),
B: 0.75 + 0.25*math.Cosf((phase+0.666)*math.TwoPi),
A: 0.50 + 0.50*math.Cosf(phase*),
}
phase += 0.01
driver.Call(func() {
label.SetColor(c)
})
}
}() window.OnClose(ticker.Stop)
window.OnClose(driver.Terminate)
} func main() {
gl.StartDriver(appMain)
}

补充:

按后面的文章更新了mingw ,解决了g++的问题,就没有不正常的提示信息了(虽然之前编译时有提示信息的情况下,程序仍能正常编译和执行)

也就是用了github上robotgo推荐的带有zlib和libpng库的gcc环境:

https://github.com/go-vgo/Mingw

另外,这个GUI运行时会弹出黑框,之前的文章提到过解决办法,如下:

不想出现dos窗口的话 ,参考:https://blog.csdn.net/wangkai_123456/article/details/71158341

配置: go build -ldflags "-H windowsgui"              (注意:用这个命令行语句时,可能需要通过环境变量修改gopath)
lite IDE配置 
     菜单 编译→编译配置

在“自定义”页面下的 BUILDAGRS 后添加 -ldflags "-H windowsgui"

2020年1月2日补充:

时隔一年,再次编译这个代码时,竟然提示:

e:\goapp\pkg\mod\github.com\google\gxui@v0.0.0-20151028112939-f85e0a97b3a4\drivers\gl\driver.go:191:12: assignment mismatch: 2 variables but c.window.Window.GetClipboardString returns 1 values

根据提示将 driver.go的第191行,12个字符处的err变量去除。

重新编译成功!

另外,参考https://blog.csdn.net/qq_32394351/article/details/93468119用fyne也不错

golang 开发gui的更多相关文章

  1. miniblink+golang开发windows gui应用

    golang的优点自不必说了,这么好的语言怎么能缺少界面库呢?所以我使用miniblink开发了一个可以用html,css,js开发界面的浏览器,通过它你能为你的golang开发简单的界面.说白了其实 ...

  2. QT +go 开发 GUI程序

      ,转载 https://blog.csdn.net/lanbery/article/details/81745611 如果你是一个墨守成规的coding,请移步其他内容,这部分内容可能不适合你.如 ...

  3. 使用golang 开发的 andriod应用

    最近在捣鼓一个东东,就是使用golang开发andriod应用.说起来简单操作起来还挺麻烦,中间又学习了很多东西.比如ubuntu,docker,angular,ionic,jquery mobile ...

  4. golang开发android环境搭建_window

    golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go:  go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...

  5. atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform

    atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. ...

  6. Windows下visual studio code搭建golang开发环境

    Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...

  7. linux golang开发环境配置(离线方式)

    <获取开发工具>     到https://www.golangtc.com/download 下载安装包, 根据自己的系统选择合适的开发包,这里选择go.1.9.2.linux-amd6 ...

  8. Linux下golang开发环境搭建

    对于golang开发来说,Windows下可以用vscode或者liteide都不错,但是Linux下的开发也就只有vim了,所以怎么搞笑的利用vim进行golang开发呢? 参考官方推荐的一个插件: ...

  9. window / Linux 下 Golang 开发环境的配置

    一直专注于使用python语言进行程序开发,但是却又一直被它的性能问题所困扰,直到遇到了天生支持高并发的Golang,这似乎也成了学习go语言最理所当然的理由.下面介绍下Go语言开发环境搭建的步骤: ...

随机推荐

  1. laravel常见异常解决

    requested URL not found http://stackoverflow.com/questions/21458080/the-requested-url-projectname-us ...

  2. Spider-three

    一.selenium from selenium import webdriver driver = webdriver.Chrome() # 创建一个chrome浏览器控制对象#driver = w ...

  3. 洛谷P3199 [HNOI2009]最小圈(01分数规划)

    题意 题目链接 Sol 暴力01分数规划可过 标算应该是这个 #include<bits/stdc++.h> #define Pair pair<int, double> #d ...

  4. 照葫芦画瓢系列之Java --- Maven的集成和使用

    一.和Eclipse的集成 1.添加Maven 在windows--> preferences中找到maven选项,如下图: 如果没有上图的Name为apache-maven-3.5.2的项,则 ...

  5. 快速开发跨平台应用之Xamarin技术

    Xamarin 介绍 Xamarin 是一个允许开发人员有效创建可跨 iOS.Android.Windows 应用程序的开发工具集.Xamarin是免费且开源的,遵循 MIT (麻省理工学院许可证)协 ...

  6. java 大文件分割与组装

    不多说,直接上代码 1 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; im ...

  7. 学习用Node.js和Elasticsearch构建搜索引擎(6):实际项目中常用命令使用记录

    1.检测集群是否健康. curl -XGET 'localhost:9200/_cat/health?v' #后面加一个v表示让输出内容表格显示表头 绿色表示一切正常,黄色表示所有的数据可用但是部分副 ...

  8. CentOS 安装开发环境 并安装coTurn

    从官网 https://www.centos.org/download/ 下载镜像文件 从163的镜像站点下载,速度较快 http://mirrors.163.com/centos/7/isos/x8 ...

  9. js强制不使用“兼容性视图”

    在IE8浏览器以后版本,都有一个“兼容性视图”,让不少新技术无法使用.那么如何禁止浏览器自动选择“兼容性视图”,强制IE以最高级别的可用模式显示内容呢?下面就介绍一段HTML代码. X-UA-Comp ...

  10. [C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例

    [C#基础]List的Sort().Find().FindAll().Exist()的使用方法举例 List函数用得还是比较多的,正好用到其中的向个方法,做了一个例程,再总结一下: 先建一个学生类: ...