Windowにボタンを配置しクリックするとメッセージボックスを表示します。
プロジェクトの作成
mkdir walkbutton
cd walkbutton
go mod init example.org/walkbutton
go get github.com/lxn/walk
code .
ソースコード
ファイル名:walkbutton.exe.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>
ファイル名:walkbutton.go
package main
import (
"log"
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
)
// MyMainWindowの構造体
type MyMainWindow struct {
*walk.MainWindow
}
func main() {
// MyMainWindowオブジェクトの生成
mw := new(MyMainWindow)
if _, err := (MainWindow{
// MainWindowsオブジェクトをMyMainWindowに割り当て
AssignTo: &mw.MainWindow,
Title: "WalkButton",
MinSize: Size{640, 480},
Layout: VBox{},
Children: []Widget{
// PushButtonオブジェクト
PushButton{
Text: "Button",
// クリックイベント
OnClicked: func() {
// メッセージボックス
walk.MsgBox(mw, "Message", "Hello", walk.MsgBoxIconInformation)
},
},
},
}.Run()); err != nil {
log.Fatal(err)
}
}
ビルド&実行
go build
./walkbutton.exe
コメント