当前位置: 首页 > article >正文

使用goland IDE编写go windows ui

最近突发奇想,想实现一款工作节奏的提示安排小闹钟。那首先解决的就是UI。本人擅长go语言。那go在windows ui的探索肯定有人做过了吧。一查还真有,通过知乎,csdn等查到目前支持最好的就是walk库了。那走起试试。

一、拷贝go代码

将官网例子(国内可以找码云)放入文件test.go:

package main

import (
	"strings"

	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
)

func main() {
	var inTE, outTE *walk.TextEdit

	MainWindow{
		Title:   "zishen-test",
		MinSize: Size{666, 666},
		Layout:  VBox{},
		Children: []Widget{
			HSplitter{
				Children: []Widget{
					TextEdit{AssignTo: &inTE, MaxLength: 10},
					TextEdit{AssignTo: &outTE, ReadOnly: true},
				},
			},
			PushButton{
				Text: "SCREAM",
				OnClicked: func() {
					outTE.SetText(strings.ToUpper(inTE.Text()))
				},
			},
		},
	}.Run()
}

在同一目录下新建test.manifest,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
        <dependency>
            <dependentAssembly>
                <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
            </dependentAssembly>
        </dependency>
    </assembly>

二、设置goland环境

从file-》setting

设置goroot为本地go的安装路径

设置gopath,为第一步test.go所在目录的上一级目录。

设置编译的os(windows吧)

三、编译

1、编译前准备

进入目录,设置mod名称,下载依赖。如下图所示。

2、编译rsrc

注意在gopath的pkg目录中,且编译完成后需要将对应的exe放到go的bin目录下,如下所示

编译rsrc文件

3、编译go文件

配置输出路径。我放在和go文件一个目录下

编译:

使用命令go build -ldflags="-H windowsgui"

四、运行

确实运行起来了。后面再优化吧

五、参考

goLang 如何开发 windows 窗口界面


http://www.kler.cn/a/225251.html

相关文章:

  • JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示
  • 使用CSS 和 JavaScript 实现鼠标悬停时图片放大、缩小和抖动
  • JS基础 -- 数组 (对象 / 数组 / 类数组 / 对象数组)的遍历
  • OSPF特殊区域(open shortest path first LSA Type7)
  • Spark Runtime Filter
  • IDEA2023.1修改默认Maven配置
  • 打造工业4.0的5G+边缘云服务产业生态,艾灵完成1.5亿元A轮融资
  • Unity中使用Ultraleap的InteractionButton组件
  • Spring Boot通过配置文件支持数据库自定义表名
  • CloudStack Agent 配置文件解析与含义
  • 【机器学习】贝叶斯垃圾邮件识别
  • 如何解决 docker registry x509 证书不信任问题?
  • Linux系统各目录作用
  • 微服务-微服务Alibaba-Nacos 源码分析 (源码流程图)
  • Leetcode 《面试经典150题》169. 多数元素
  • 蓝桥杯算法赛第4场小白入门赛强者挑战赛
  • 数据分析中需要用的的python知识(包括Numpy、Pandas、Matplotlib)
  • SQL 语句
  • 通过与chatGPT交流实现零样本事件抽取
  • 网络通信--术语对照表
  • Angular组件(二) 分割面板ShrinkSplitter
  • 5G安卓核心板开发板_MT6833天玑700规格参数
  • Unity之做一个最简单的FPS游戏demo
  • nginx反向代理----->微服务网关----->具体微服务
  • 【C++提高编程(四)】
  • MySQL系列:系列结构和基础管理