首頁  >  文章  >  後端開發  >  詳解goLang怎麼開發windows視窗介面

詳解goLang怎麼開發windows視窗介面

藏色散人
藏色散人轉載
2021-07-26 15:17:067600瀏覽

今天找了一下。找到了一個 walk的一個東西。不用說下get一下這個pack下了再說

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運行成功了

更多golang相關技術文章,請造訪golang教學欄位!

以上是詳解goLang怎麼開發windows視窗介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除