• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言:Windows下最能凑合用的桌面GUI库(lxn/walk 起步教程) - pu369com ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Go语言:Windows下最能凑合用的桌面GUI库(lxn/walk 起步教程)

 

1、封闭环境首先得GO111MODULE、GOPROXY,参考我之前文章https://www.cnblogs.com/pu369/p/12068645.html

2、前置安装

go get github.com/akavel/rsrc
go get github.com/lxn/win
go get github.com/lxn/walk

由于我是在liteide下,按CTRL+B 时自动生成了go.mod和go.sum;就不用自己运行go mod命令了。

3、代码实例:

由于参考网上代码不成功,改用以下办法测试

将go get 得到的pkg\mod\github.com\lxn\[email protected]\examples\filebrowser下面的

filebrowser.go和rsrc.syso复制到自己的项目目录(如:名为gowalk)下,并将filebrowser.go改名为main.go

4、在自己的项目目录(如:名为gowalk)下,cmd命令行,正式编译

go build -ldflags="-H windowsgui -w -s"

(也可在liteid中设置BUILDAGRS 后添加 -ldflags "-H windowsgui"  ,参考我之前写的https://www.cnblogs.com/pu369/p/10336699.html

5、双击生成的EXE运行,成功。

据说不动态添加控件的话,可在布局 Children: []Widget  中或者QT设计器设计UI文件,然后加载。

6、最终测试代码:

// Copyright 2011 The Walk 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 (
    "log"
    "time"
)

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

func main() {
    var mainWindow *walk.MainWindow
    var a *walk.PushButton

    if err := (MainWindow{
        AssignTo: &mainWindow,
        Title:    "Walk File Browser Example",
        MinSize:  Size{600, 400},
        Size:     Size{1024, 640},
        Layout:   HBox{MarginsZero: true},
        Children: []Widget{
            PushButton{
                Text:     "点击我修改按钮标题",
                AssignTo: &a,
                OnClicked: func() {
                    update(a) //方法1。或者直接把a作为全局变量,无需传递a 。或者直接定义结构体,添加方法。
                },
            },
        },
    }.Create()); err != nil {
        log.Fatal(err)
    }

    mainWindow.Run()
}

func update(a *walk.PushButton) {
    a.SetText("点击我修改按钮标题" + time.Now().String())
}

 

参考:https://www.jianshu.com/p/28f371a378f0

https://my.oschina.net/u/248241/blog/861841

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
如何避开 Go 中的各种陷阱发布时间:2022-07-10
下一篇:
驳2B文 \"我为什么放弃Go语言\"发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap