前提・実現したいこと
ウィンドウを中央に表示させたいです。
試したこと
SetBoundsで描画の開始位置を設定できるようなので以下のソースを作成しました。
import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" "github.com/lxn/win" ) type MyLoadWindow struct { *walk.MainWindow progressBar *walk.ProgressBar } func Main() { mw := &MyLoadWindow{} // 画面サイズ取得 sizeX := 300 sizeY := 100 // 画面情報設定 MW := MainWindow{ AssignTo: &mw.MainWindow, // Widgetを実体に割り当て Title: "コンピュータの情報を取得中", Size: Size{ sizeX, sizeY}, Font: Font{PointSize: 12}, Layout: VBox{}, Children: []Widget{ // ウィジェットを入れるスライス ProgressBar{ AssignTo: &mw.progressBar, MarqueeMode: true, }, }, } const WINDOW_HEIGHT = 100 const WINDOW_WIDTH = 200 // 画面の縦と横のサイズを取得 scrWidth := win.GetSystemMetrics(win.SM_CXSCREEN) scrHeight := win.GetSystemMetrics(win.SM_CYSCREEN) // 描画開始位置を設定 mw.MainWindow.SetBounds(walk.Rectangle{ X: int((scrWidth - WINDOW_WIDTH) / 2), Y: int((scrHeight - WINDOW_HEIGHT) / 2), Width: WINDOW_WIDTH, Height: WINDOW_HEIGHT, }) if _, err := MW.Run(); err != nil { println("Error") return } }
発生している問題・エラーメッセージ
panic: runtime error: invalid memory address or nil pointer dereference
SetBoundsのところで上記のエラーが出てしまいます。
なぜこのエラーが出力されてしまうのでしょうか?
補足情報(FW/ツールのバージョンなど)
Golang
Windows
Walk
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。