• goLang 如何开发 windows 窗口界面


    go get github.com/lxn/walk

    get下来后 访问了一下github 页面看了一下作者的说明

    Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。

    还有个 例子。

    package main
    
    import (
    	"strings"
    
    	"github.com/lxn/walk"
    	. "github.com/lxn/walk/declarative"
    )
    
    func main() {
    	var inTE, outTE *walk.TextEdit
    
    	MainWindow{
    		Title:   "xiaochuan测试",
    		MinSize: Size{600, 400},
    		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()
    }
    

    这个肯定要自己试试玩玩啊。写完代码 buIid一下

    go build -ldflags="-H windowsgui"

    生成了一个 test.exe的文件。打开了一下。居然一点反应都没有。又仔细看了一下。原来我忽略了一个东西

    还需要一个 rsrc的一个pack

    go get github.com/akavel/rsrc

    get下来后 访问了一下github 页面看了一下作者的说明

    用于在程序中嵌入二进制资源的工具

    这个怎么玩呢。 运行一下 go install 然后运行 rsrc 命令。不好用。估计go bin 下面没有这个 rsrc.exe 没办法手动build copy 过去把

    cd %GOPATH%/src/github.com/akavel/rsrc
    go build


    可以看到这个rsrc目录下面生成了一个 rsrc.exe 肯定就是 这个鬼.copy 到 GOROOT/bin 下面 。运行一下

    ok install 完成了。下面怎么玩呢。继续看作者怎么写的

    他需要创建一个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>


    然后运行

    rsrc -manifest test.manifest -o rsrc.syso

    然后再运行刚刚的那个 

    go build -ldflags="-H windowsgui"

    双击 test.exe 。ok运行成功了

  • 相关阅读:
    Server.MapPath()
    正斜杠(/)与反斜杠(\)总结
    ASP.NET DridView 显示行号
    Win7 64位 IIS未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项
    DataTable中Rows.RemoveAt(i)和Rows(i).Delete的区别
    字段与属性的区别
    VS 创建assemblyinfo项目信息文件
    GridView的RowDataBound事件 获取当前行的某个数据列
    ASPxHtmlEditor上传重命名的方法
    关于ModalPopup控件不能调用CS事件代码的问题
  • 原文地址:https://www.cnblogs.com/zwjphp/p/14372454.html
Copyright © 2020-2023  润新知