1. 程式人生 > >Golang---walk學習(一)

Golang---walk學習(一)

    開始嘗試用Golang語言來寫介面,發現了walk這個好東西,可以實現非常優美的介面程式

    walk的git地址為:http://github.com/lxn/walk

            開發文件為:http://godoc.org/github.com/lxn/walk

    在保證安裝好了golang語言並配置好環境變數、安裝Git之後,就可以直接從go命令列中獲取walk

           

    命令執行完之後就會發現在golang的GOPATH下的src目錄中生成了一個github.com資料夾,是儲存從github上得到的所有的第三方庫,庫中有很多的使用例子,本人使用的IDE是LiteIDE,匯入之後就可以直接編譯執行。

   完整程式碼如下:

// Copyright 2013 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"
)

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

func main() {
	var te *walk.TextEdit

	if _, err := (MainWindow{
		Title:   "Walk Clipboard Example",
		MinSize: Size{300, 200},
		Layout:  VBox{},
		Children: []Widget{
			PushButton{
				Text: "Copy",
				OnClicked: func() {
					if err := walk.Clipboard().SetText(te.Text()); err != nil {
						log.Print("Copy: ", err)
					}
				},
			},
			PushButton{
				Text: "Paste",
				OnClicked: func() {
					if text, err := walk.Clipboard().Text(); err != nil {
						log.Print("Paste: ", err)
					} else {
						te.SetText(text)
					}
				},
			},
			TextEdit{
				AssignTo: &te,
			},
		},
	}).Run(); err != nil {
		log.Fatal(err)
	}
}

     

  以上可以實現複製和貼上功能,並在指定的text裡面顯示,簡單強大!

     介面編寫起來非常的簡潔,事件處理也很方便,當然,如果想將生成的exe打包的話,就需要使用另外一個工具rsrc,同樣可以在命令列中直接使用go命令來獲取:

     

     得到之後,需要在rsrc目錄下進行編譯,最後得到的rsrc.exe放入到GOROOT目錄下,此刻就可以對exe檔案進行打包啦。

     打包的命令為:

     

    其實我們發現在exe在編譯執行之後,就會在目錄下生成一個manifest檔案,而打包就是將exe檔案和manifest嵌入在一起釋出,命令中的test.manifest就是程式生成的檔案,接下來就可以將exe檔案釋出了。

    最後還遇到一個問題,在打包之後執行exe的時候會出現doc視窗,這是因為在編譯的時候將編譯視窗融合在了一起,因此在build的時候使用

    

    這樣就可以避免出現這種情況了。

   最後,分享另外一個drawing例子的畫圖框