精华内容
下载资源
问答
  • 它比filepath.Walk快。 在Windows上,它比filepath.Walk更正确。 它比filepath.Walk更易于使用。 它比filepath.Walk更灵活。 使用范例 在examples/子目录中提供了其他示例。 该库将通过调用特定于OS的路径分隔...
  • go walk 消息窗

    2020-04-10 15:24:48
    简要介绍Go GUI框架Walk 消息窗的使用,附上代码

    golang walk MsgBox 消息窗的使用

    walk.MsgBox
    1. 消息窗
    func MsgBox(owner Form, title, message string, style MsgBoxStyle) int
    
    • owner Form 父窗体句柄

    • title 消息窗的标题

    • message 消息内容

    • style 消息窗的样式

    walk.MsgBox(
    		mw,
    		"Title",
    		"Message",
    		walk.MsgBoxServiceNotification)
    

    参数style 取值比较多可参照 walk 包下面的 messagebox.go 中定义的

    1. 消息按钮事件的触发

      walk.MsgBox 方法的返回值是int ,这个返回值就是点击消息窗按钮时返回的,返回用户点击的具体的按钮的Id,可以通过判断这个来触发点击回调。具体实现如下,部分关键代码:

      OnClicked: func() {
      			cmd=walk.MsgBox(
      				mw,
      				"Title",
      				"Message",
      				walk.MsgBoxYesNoCancel)
      			switch cmd {
      			case walk.DlgCmdYes:
      				le.SetText("click 是")
      			case walk.DlgCmdCancel:
      				le.SetText("click 取消")
      			case walk.DlgCmdNo:
      				le.SetText("click 否")
      			}
      		},
      
    展开全文
  • golang walk界面库 最小化事件

    千次阅读 2017-06-02 23:29:32
    示例图:package mainimport ( "fmt" "log" "syscall" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" "github.com/lxn/win" )var ( libuser32 *syscall.DLL isIconic *sys

    示例图:

    最小化事件

    package main
    
    import (
        "fmt"
        "log"
        "syscall"
    
        "github.com/lxn/walk"
        . "github.com/lxn/walk/declarative"
        "github.com/lxn/win"
    )
    
    var (
        libuser32 *syscall.DLL
        isIconic  *syscall.Proc
    )
    
    func init() {
        // Library
        libuser32 = syscall.MustLoadDLL("user32.dll")
        // functions
        isIconic = libuser32.MustFindProc("IsIconic")
    }
    
    /* 确定指定的窗口是否被最小化(图标)
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms633527(v=vs.85).aspx
    */
    func IsIconic(hWnd win.HWND) bool {
        ret, _, _ := isIconic.Call(uintptr(hWnd))
        return ret == win.TRUE
    }
    
    type MyWindow struct {
        *walk.MainWindow
    }
    
    func main() {
        mw := new(MyWindow)
        if err := (MainWindow{
            AssignTo: &mw.MainWindow,
            Title:    "最小化测试",
            MinSize:  Size{280, 200},
            Layout:   HBox{},
            Children: []Widget{
                PushButton{
                    Text: "测试",
                    OnClicked: func() {
                        walk.MsgBox(mw, "测试", "最小化事件捕捉!", walk.MsgBoxIconInformation)
                    },
                },
            },
        }).Create(); err != nil {
            log.Fatal(err)
        }
        mw.SizeChanged().Attach(func() {
            if mw.X() == -32000 && mw.Y() == -32000 {
                fmt.Printf("X, Y == -32000 --> 窗口最小化, X = %d, Y = %d\n", mw.X(), mw.Y())
            }
            if IsIconic(mw.Handle()) {
                message := fmt.Sprintf("IsIconic --> 窗口最小化, X = %d, Y = %d", mw.X(), mw.Y())
                walk.MsgBox(mw, "事件", message, walk.MsgBoxIconWarning)
            }
        })
        mw.Run()
    }
    
    展开全文
  • 5.2 Go语言项目实战:初识Walk GUI

    千次阅读 2018-09-13 11:24:45
    GO语言的图形界面库Walk简介 GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。 关于...

    GO语言的图形界面库Walk简介
    GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。

    关于Walk界面库(官方介绍):Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。

    ###安装Walk
    在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以参考go官网的Install帮助。另外,注意:这个Walk库只能运行在Go 1.1.x及以上。

    要安装Walk很简单,只要运行命令:go get github.com/lxn/walk

    等待命令执行完毕,这时候检查GOPATH的src与pkg下,是否有符合自己计算机环境的walk目录。(我的电脑的CPU架构为AMD64,则会在%GOPATH%\windows_amd64\github.com\lxn下出现一个walk文件夹与编译完成的a文件,另外在%GOPATH%\src\github.com\lxn下也会出现walk的源代码)

    导入依赖

    import (
    	//引入walk包
    	"github.com/lxn/walk"
    	//declarative包下包含大量控件,加一个点:使用包内的成员时可以省略包名
    	."github.com/lxn/walk/declarative"
    	"strings"
    )
    

    官方的入门Demo

    <
    展开全文
  • 文章目录readme1.1 main.go1.2 main.manifest readme go get -u -v github.com/akavel/rsrc rsrc -manifest main.manifest -o rsrc.syso go build 1.1 main.go package main import ( "log" "github....

    readme

    go get -u -v github.com/akavel/rsrc
    rsrc -manifest main.manifest -o rsrc.syso
    
    go build
    

    在这里插入图片描述

    1.1 main.go

    package main
    
    import (
    	"log"
    
    	"github.com/lxn/win"
    
    	"github.com/lxn/walk"
    	. "github.com/lxn/walk/declarative"
    )
    
    type MyWindow struct {
    	*walk.MainWindow
    	hWnd        win.HWND
    	minimizeBox *walk.CheckBox
    	maximizeBox *walk.CheckBox
    	closeBox    *walk.CheckBox
    	sizeBox     *walk.CheckBox
    	ni          *walk.NotifyIcon
    }
    
    func (mw *MyWindow) SetMinimizeBox() {
    	if mw.minimizeBox.Checked() {
    		mw.addStyle(win.WS_MINIMIZEBOX)
    		return
    	}
    	mw.removeStyle(^win.WS_MINIMIZEBOX)
    }
    
    func (mw *MyWindow) SetMaximizeBox() {
    	if mw.maximizeBox.Checked() {
    		mw.addStyle(win.WS_MAXIMIZEBOX)
    		return
    	}
    	mw.removeStyle(^win.WS_MAXIMIZEBOX)
    }
    
    func (mw *MyWindow) SetSizePersistent() {
    	if mw.sizeBox.Checked() {
    		mw.addStyle(win.WS_SIZEBOX)
    		return
    	}
    	mw.removeStyle(^win.WS_SIZEBOX)
    }
    
    func (mw *MyWindow) addStyle(style int32) {
    	currStyle := win.GetWindowLong(mw.hWnd, win.GWL_STYLE)
    	win.SetWindowLong(mw.hWnd, win.GWL_STYLE, currStyle|style)
    }
    
    func (mw *MyWindow) removeStyle(style int32) {
    	currStyle := win.GetWindowLong(mw.hWnd, win.GWL_STYLE)
    	win.SetWindowLong(mw.hWnd, win.GWL_STYLE, currStyle&style)
    }
    
    func (mw *MyWindow) SetCloseBox() {
    	if mw.closeBox.Checked() {
    		win.GetSystemMenu(mw.hWnd, true)
    		return
    	}
    	hMenu := win.GetSystemMenu(mw.hWnd, false)
    	win.RemoveMenu(hMenu, win.SC_CLOSE, win.MF_BYCOMMAND)
    }
    
    func (mw *MyWindow) AddNotifyIcon() {
    	var err error
    	mw.ni, err = walk.NewNotifyIcon(mw)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	icon, err := walk.Resources.Image("img/show.ico")
    	if err != nil {
    		log.Fatal(err)
    	}
    	mw.SetIcon(icon)
    	mw.ni.SetIcon(icon)
    	mw.ni.SetVisible(true)
    
    	mw.ni.MouseDown().Attach(func(x, y int, button walk.MouseButton) {
    		if button == walk.LeftButton {
    			mw.Show()
    			win.ShowWindow(mw.Handle(), win.SW_RESTORE)
    		}
    	})
    
    }
    
    func main() {
    	mw := new(MyWindow)
    	if err := (MainWindow{
    		AssignTo: &mw.MainWindow,
    		Title:    "notify icon",
    		Size:     Size{550, 380},
    		Layout:   VBox{MarginsZero: true},
    		OnSizeChanged: func() {
    			if win.IsIconic(mw.Handle()) {
    				mw.Hide()
    				mw.ni.SetVisible(true)
    			}
    		},
    		Children: []Widget{
    			CheckBox{
    				AssignTo:            &mw.minimizeBox,
    				Text:                "显示最小化按钮",
    				Checked:             true,
    				OnCheckStateChanged: mw.SetMinimizeBox,
    			},
    			CheckBox{
    				AssignTo:            &mw.maximizeBox,
    				Text:                "显示最大化按钮",
    				Checked:             true,
    				OnCheckStateChanged: mw.SetMaximizeBox,
    			},
    			CheckBox{
    				AssignTo:            &mw.closeBox,
    				Text:                "显示关闭按钮",
    				Checked:             true,
    				OnCheckStateChanged: mw.SetCloseBox,
    			},
    			CheckBox{
    				AssignTo:            &mw.sizeBox,
    				Text:                "允许修改大小",
    				Checked:             true,
    				OnCheckStateChanged: mw.SetSizePersistent,
    			},
    		},
    	}.Create()); err != nil {
    		log.Fatal(err)
    	}
    	mw.hWnd = mw.Handle()
    	mw.AddNotifyIcon()
    
    	mw.Run()
    }
    
    

    1.2 main.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>
        <application xmlns="urn:schemas-microsoft-com:asm.v3">
            <windowsSettings>
                <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
                <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
            </windowsSettings>
        </application>
    </assembly>
    
    展开全文
  • 5.3 Go语言项目实战:walk常用控件

    千次阅读 2018-09-13 11:27:29
    walk.MsgBox(mw, "Value", value, walk.MsgBoxIconInformation) } //列表的系统回调方法:获得listbox的数据长度 func (m *EnvModel) ItemCount() int { return len(m.items) } //列表的系统回调方法:根据序号...
  • Golang---walk学习(一)

    万次阅读 2017-11-03 14:03:29
    开始尝试用Golang语言来写界面,发现了walk这个好东西,可以实现非常优美的界面程序  walk的git地址为:... 在保证安装好了golang语言并配置好环境变量、安装Git之后,就可以直接从go命令行中获取walk
  • Go语言 walk

    2012-10-11 15:19:02
    windows平台上开发Go语言应用程序的,必备的ui包,资源全面,是做出美好界面不可缺少的好资源!仅限winxp/win7。
  • <p>I am trying to figure out the basics of working with the Go GUI library, <a href="https://godoc.org/github.com/lxn/walk" rel="nofollow">walk</a>. <p>For starters, I would like to be able to ...
  • go walk使用记录(一)

    万次阅读 2019-04-29 13:36:50
    go walk库可以做什么 - 为什么用go walk:想开发一些图形化工具,工作当中很多时候还是有小工具需求的。 前置注意点 - 官网https://github.com/lxn/walk: "Go 1.7.x doesn't work with walk anymore, Make sure ...
  • **部分代码如下,初学golang 请教各位大佬** ``` type MyMainWindow struct { *walk.MainWindow hcName *walk.Label userIdName *walk.Label startTime *walk.DateEdit endTime *walk.DateEdit hc...
  • Go与GUI--Go语言的图形界面Walk

    万次阅读 2018-06-16 11:46:40
    GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#... 在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以...
  • walk GoDoc
  • go使用walk创建window界面,与ai对话

    千次阅读 2019-07-29 17:43:16
    前面我们学过搭建ai服务器:... 下面,我们在window系统中,使用walk创建一个window界面,与ai对话 walk github :https://github.com/lxn/walk 需要用到的第三方包有: go get github.com/gin-gonic/gin...
  • Go的GUI库Walk——布局

    2021-03-20 21:14:16
    go 的gui库比较多,但许多缺乏官方文档,学习起来有一定的困难。经过再三考虑,本人选择了其中的walk库进行学习,这个库只能运行在windows平台上。walk库的语法风格像JavaScript,可以快速构建gui程序,同时界面也...
  • tableview.go // 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 ( ...
  • Go窗体练习(Walk包)

    2021-04-06 14:25:32
    Go窗体学习(Walk包)前言准备代码结果 前言 由于老师让我们做一个窗体程序,正巧我在学习go,于是搜索了一下go是否能做窗体,结果就发现了walk包,题目为字符串解析(大概就是输出一下前后缀等等) 准备 安装github...
  • Go --walk开坑记:1

    2019-09-22 21:59:28
    本文适合和我一样的go语言walk库初学者 首先安装walk库 go get https://github.com/lxn/walk 安装rsrc库(编译运行需要的环境) go get github.com/akavel/rsrc 配置.manifest后缀文件内容(放在src目录工程下,...
  • 具体实现:菜单栏和工具栏的定义,消息窗口的...部分来自 lxn/walk 官方示例 package main import ( "fmt" "io" "os" "strings" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) type MyMainW
  • package main import ( "fmt" "os" "path/filepath" ) func walkFunc(path string, info os.FileInfo, err error) error { fmt.Printf("%s\n", path) ... filepath.Walk("C:/Documents and Settings/xxx/...
  • 如上图,从左到右用来TreeView、TableView、WebView 定义了一个名为Directory的目录结构体,每个目录理论上有一个父节点,有0到n...filebrowser.go // Copyright 2011 The Walk Authors. All rights reserved....
  • 一、第一个 Go Walk程序 package main import ( . "github.com/lxn/walk/declarative" ) func main() { mainWindow.Run() } var LableHello=Label{ Text: "Hello world!", } var widget=...
  • walkgolang的windows的ui界面包 下载 下载前先 要下载 golang.org/x 由于墙了 只能先执行 以下命令 mkdir -p $GOPATH/src/golang.org/x/ cd !$ git clone https://github.com/golang/net.git git clone ...
  • WalkGo编程语言的“ Windows应用程序库工具包”。 它主要用于桌面GUI开发,但还有更多内容。 建立 确保您可以使用Go安装。 请参阅 注意 Walk当前需要Go 1.11.x或更高版本。 安装 现在运行go get github....
  • Golang 在windows下walk窗口界面设计二

    千次阅读 2017-03-18 12:01:00
    无法一下讲完,研究GO语言绘制出UI才是我们的正道,否则有点舍本逐末,我们最求的是结果,无需关心底层的实现,只讲实现才是正确的选择。 一个窗口还不行,得添加个按钮,比如添加按钮后,我们点击按钮,修改按钮...
  • Golang GUI编程:walk.WebView实现web app

    千次阅读 2020-06-08 14:18:20
    本程序采用github.com/lxn/walkwalk.WebView实现一个GUI程序,启动一个http server,GUI访问本地http server。 支持写日志、响应键盘事件等。 完整代码: main.go //先安装mingw64 package main import ( ...
  • 界面左侧一个ListBox,右侧一个...listbox.go // Copyright 2012 The Walk Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENS...
  • go get github.com/lxn/walk 代码 package main import ( "fmt" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) /*-------------------window界面-------------------*/ type MyMainWindow ...
  • 因为是刚开始学go 用gui,然后只做了初步的测试,结果碰到问题了 其实这里基本已经描述的很清楚了https://github.com/lxn/walk 但是无奈我英语比较差(好好学英语!) 因为刚开始接触这个东西,所以很多不是很懂 1、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,229
精华内容 8,091
关键字:

gowalk