Go言語でQtのQComboBoxを作ってみる。
QComboBox Class | Qt Widgets 5.11
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") widget := widgets.NewQWidget(nil, 0) //フレームワークにQTBoxLayoutをはめ込む //第一引数で0は左から右、1は右から左、2は上から下、3は下から上 widget.SetLayout(widgets.NewQBoxLayout(3, nil)) window.SetCentralWidget(widget) comboBox := widgets.NewQComboBox(nil) comboBox.SetWindowTitle("Combo Box") items := []string{"Some", "Combo", "Box", "Items"} comboBox.AddItems(items) comboBox.ConnectCurrentIndexChanged2(func(text string) { widgets.QMessageBox_Information(nil, "OK", text, widgets.QMessageBox__Ok, widgets.QMessageBox__Ok) }) widget.Layout().AddWidget(comboBox) window.Show() app.Exec() }
QComboBoxもQLineEditと同じような考えで、最初にQBoxLAyoutなどでレイアウトを決めておいて、そこにQComboBoxをさしこむという考え方みたいだ。QComboBox内で選ぶ言葉や数字は、AddItemsを使って、挿入する。
ConnectCurrentIndexChanged2は、QComboBox内のどれかを選択すると実行される関数である。