qcomboboxは型を返しません。現在のデータを取得する方法は?
質問
2つのQComboBoxesを実装しました。1つは毎回手動で挿入され、もう1つはリストで挿入されたアイテムを持っています(Pythonを使用しています)
しかし、コンボボックスの現在の価値を取得しようとすると、それは戻ります なし 。私はこの質問で指定されたとおりに進みました:私はこれを紹介しました私はコードしたWATを提供しました。「コマンド」と「オプション」はQComboBoxesです(悪いスタイルのために私を許してください)インデックスに間違いはありますか?
self.command.insertItem(1,'Convert')
self.command.insertItem(2,'Compose')
self.command.insertItem(3,'Animate')
self.option.insertItems(268,list)
と検索:
self.selected_com=self.command.itemData(self.command.currentIndex())
self.selected_opt=self.option.itemData(self.option.currentIndex())
解決
コンボボックスに現在のアイテムを選択していません。現在のアイテムがなく、新しいアイテムを挿入する場合 insertItem
, 、現在のものとして自動的に選択されていません。あなたはおそらく電話したいです self.command.setCurrentIndex(1)
と self.option.setCurrentIndex(1)
.
についてのドキュメントから currentIndex()
:
デフォルトでは、空のコンボボックスまたは現在のアイテムが設定されていないコンボボックスの場合、このプロパティの値は-1です。
についてのドキュメントから itemData()
:
Comboboxの指定されたインデックスで指定された役割のデータを返し、QVariant ::この役割のデータがない場合は無効です。
Pyqtのドキュメントから:
qvariantが予想される場合はいつでも、Pythonオブジェクトを使用できます。無効なqvariantとして解釈されるものはありません。
他のヒント
このコードを使用して、コンボボックスから現在のデータを取得できます。
QString qualification=ui->comboBox->currentText();
QDebug()<<qualification;