Go言語「WALK」KeyDownイベント

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

押したキーでウィンドウのタイトルが変化するサンプルです。

プロジェクトの作成

ソースコード

package main

import (
    "log"

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

type MyMainWindow struct {
    *walk.MainWindow
}

func main() {

    mw := new(MyMainWindow)

    if _, err := (MainWindow{
        AssignTo: &mw.MainWindow,
        OnKeyDown: func(key walk.Key) {
            s := ""
            if walk.ControlDown() {
                s = s + "Ctrl+"
            }
            if walk.AltDown() {
                s = s + "Alt+"
            }
            if walk.ShiftDown() {
                s = s + "Shift+"
            }
            s = s + key.String()
            mw.SetTitle(s)
        },
        Title:    "keydown_sample",
        MinSize:  Size{640, 480},
        Layout:   VBox{},
        Children: []Widget{},
    }.Run()); err != nil {
        log.Fatal(err)
    }
}

ビルド&実行

go build
./プロジェクト名.exe

Go言語で記述されたwalkのソースコードを眺めながらVSCodeのインテリセンス機能を駆使してキーボードイベントから押されているキーを拾ってみました。

コメント