私はPythonについてはわかりませんが、少なくともC++では、コンボボックスの各要素にQVariant
のデータを添付することができます。 A QVariant
は、事実上すべてのタイプ、例えば文字列または列挙型にすることができます。
コンボボックスを入力するときは、メンバー関数void QComboBox::addItem(const QString & text, const QVariant & userData = QVariant())
を使用します。次に、ユーザーがアイテムを選択し、コンボボックスの現在のインデックスを知っている場合は、そのアイテムのQVariant
を取得するためにQVariant QComboBox::itemData(int index, int role = Qt::UserRole) const
を使用して、含まれているデータの実際のタイプに変換することができます。 QString QVariant::toString() const
を使用してください。
コンボボックスも一つの特定のデータ項目のインデックスを取得するための方法を提供する:int QComboBox::findData(const QVariant & data, int role = Qt::UserRole, Qt::MatchFlags flags = static_cast<Qt::MatchFlags> (Qt::MatchExactly | Qt::MatchCaseSensitive)) const
は今、あなただけのpythonにそれを転送する必要がありますが、私は、インターフェイスが同じになりますと仮定します。
非常に詳細な応答をいただきありがとうございます、私はこれを得ることができましたあなたの助けを借りて。再度、感謝します!範囲(をrowCount)にインデックス用 #Weight :いくつかの奇妙な結果を得る – Goldglv
また、わからない私はこれを正しく設定した場合、ときcomboChanged内部、 \tコンボ= QtWidgets.QComboBox() combo.currentIndexChanged.connect( comboBoxWeightでのトンのためのself.comboChanged) : \t combo.addItem(T [0]、QVariant(T [1])) self.tableWidgetCode.setCellWidget(インデックス、0、コンボ) – Goldglv
[OK]を、1つのより多くの疑問を持っていました。 「コード」と「説明」でコンボボックスを設定できたので、プロシージャからデータを取得したら、適切な行にデータを設定する必要があります。 データから「PAY_COMP」が返された場合、コンボボックス内のテーブルで「Payment Company」を表示するにはどうすればよいですか? 私は次のようなものを使用する必要があると仮定しています: self.tableWidgetCode.cellWidget(0,0).setItemData(行)を取得できません... @user – Goldglv