golang 开发gui
可能因为我电脑上的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的更多相关文章
- miniblink+golang开发windows gui应用
golang的优点自不必说了,这么好的语言怎么能缺少界面库呢?所以我使用miniblink开发了一个可以用html,css,js开发界面的浏览器,通过它你能为你的golang开发简单的界面.说白了其实 ...
- QT +go 开发 GUI程序
,转载 https://blog.csdn.net/lanbery/article/details/81745611 如果你是一个墨守成规的coding,请移步其他内容,这部分内容可能不适合你.如 ...
- 使用golang 开发的 andriod应用
最近在捣鼓一个东东,就是使用golang开发andriod应用.说起来简单操作起来还挺麻烦,中间又学习了很多东西.比如ubuntu,docker,angular,ionic,jquery mobile ...
- golang开发android环境搭建_window
golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go: go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...
- 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. ...
- Windows下visual studio code搭建golang开发环境
Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...
- linux golang开发环境配置(离线方式)
<获取开发工具> 到https://www.golangtc.com/download 下载安装包, 根据自己的系统选择合适的开发包,这里选择go.1.9.2.linux-amd6 ...
- Linux下golang开发环境搭建
对于golang开发来说,Windows下可以用vscode或者liteide都不错,但是Linux下的开发也就只有vim了,所以怎么搞笑的利用vim进行golang开发呢? 参考官方推荐的一个插件: ...
- window / Linux 下 Golang 开发环境的配置
一直专注于使用python语言进行程序开发,但是却又一直被它的性能问题所困扰,直到遇到了天生支持高并发的Golang,这似乎也成了学习go语言最理所当然的理由.下面介绍下Go语言开发环境搭建的步骤: ...
随机推荐
- 【Java每日一题】20170120
20170119问题解析请点击今日问题下方的“[Java每日一题]20170120”查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; import jav ...
- Java类加载机制(加载、验证、准备、解析、初始化)
如下图所示,Java的类加载机制主要分为三个部分,分别为加载.链接.初始化.其中链接又分为三个小部分--验证.准备.解析. 加载--在经过对Java代码进行编译后,JVM将Java类编译后的二进制文件 ...
- Log4j的扩展RollingFileAppender、DailyRollingFileAppender
最常用的Appender--RollingFileAppender RollingFileAppender的一个Log4j配置样例: log4j.appender.R=org.apache.log4j ...
- Python 字典(Dictionary) 基本操作
Python字典是一种可变容器模型,可存储任意类型对象:如字符串.数字.元组等.它以键值对(key-value)的形式存在,因此相当于Hashmap在python中的实现. §1. 创建字典 字典由 ...
- HTTP与HTTPs的区别?
简而言之: HTTPS = HTTP + SSL HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头 HTTP 是不安全的,而 HTTPS 是安 ...
- mapper代理查询
对于查询来说,要根据具体的业务,来指定mapper接口中方法的返回值类型1:如果只返回一条记录,mapper接口中方法的返回值类型应指定为pojo类型或其他简单类型,这样mybatis内部就会使用se ...
- javascript中数组的常用算法深入分析
Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...
- HTML 请求头,响应头和 HTTP状态码
请求头 选项 说明 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 告诉服务器,当前客户端可以接收的文档类型 ...
- java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...
- 【mongoDB高级篇③】综合实战(1): 分析国家地震数据
数据准备 下载国家地震数据 http://data.earthquake.cn/data/ 通过navicat导入到数据库,方便和mysql语句做对比 shard分片集群配置 # step 1 mkd ...