Go言語でQtのQBoxLayoutを使ってみるに引き続き、
Go言語でQtのQFormLayoutを使ってみる。
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() }