Go言語でWindowsのGUIを作る「WALK」ボタンとメッセージボックス

Go言語 コンピュータ
Go言語

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

コメント