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内のどれかを選択すると実行される関数である。




