Go言語でQtのQBoxLayoutを使ってみるに引き続き、

Go言語でQtのQFormLayoutを使ってみる。


Qtのレイアウトについては下記の記事に記載してある。

Qtのレイアウトについて


QFormLayoutは、下記の図のようにQLabelとQLineEditのようなラベルと入力フォームの関係を簡単に構築出来るレイアウトである。

package main

import (
"os"

"github.com/therecipe/qt/widgets"
)

func main() {
app := widgets.NewQApplication(len(os.Args), os.Args)
window := widgets.NewQMainWindow(nil, 0)
window.SetMinimumSize2(400, 300)
window.SetWindowTitle("Hello Ryoko")//Windowを作成する

widget := widgets.NewQWidget(nil, 0)//ウィジットを作成する
formLayout := widgets.NewQFormLayout(nil)//formLayoutを作成する

// QLabelでラベルを作成してみる。QLabelを作成した後、文字列をセットする必要がある。
label1 := widgets.NewQLabel(nil, 0)
label1.SetText("name")

//プレースホルダー付きQLineEditを作成してみる
input1 := widgets.NewQLineEdit(nil)
input1.SetPlaceholderText("Please input name's string...")
formLayout.AddRow(label1, input1)

//QLabel2でラベルを作成してみる。作成時に文字列を指定することができる
label2 := widgets.NewQLabel2("reading", nil, 0)
input2 := widgets.NewQLineEdit(nil)
formLayout.AddRow(label2, input2)

// AddRow3でQLineEditを挿入してみる。QLabelを使わなくても、AddRow3で上記と同じように、QLabelとQLineEditを作成できる
input3 := widgets.NewQLineEdit(nil)
formLayout.AddRow3("email", input3)

//AddRow以外でウィジェットを挿入できるか試してみる
button := widgets.NewQPushButton2("click", nil)
formLayout.AddWidget(button)

//フレームワークに上記で作成したレイアウトをセットする
widget.SetLayout(formLayout)
window.SetCentralWidget(widget)
window.Show()
app.Exec()
}