Pyqt4とpython 2.6を使用して、オプションのリストを提供するためにqcomboboxを使用しています。選択したオプションの使用に問題があります。シグナルを使用してメソッドをトリガーすることができましたオプションは選択されていますが、問題は、ユーザーが実行をクリックすると、これらのコンボボックスのいくつかのコンテンツを考慮する必要があるということです。したがって、基本的にコンボボックスの選択されたコンテンツを文字列として取得する必要があります。これのみ使用できました:
print combobox1.currentText()
これを取得するには:
PyQt4.QtCore.QString(u'Test Selection2')
私が本当に欲しいのは「テスト選択」ビットだけです、何かアイデアはありますか?私のコンボボックスは次のように作成されました。
combobox1 = qt.QComboBox()
combobox1.addItems(['Test Selection1', 'Test Selection2'])
mainLayout.addWidget(combobox1, 0, 0)
str
関数を使用するだけで、QString型をpython文字列に変換できます。 Unicode文字を使用していないと仮定すると、次のようにpython文字列を取得できます。
text = str(combobox1.currentText())
Unicode文字を使用している場合は、次のことができます。
text = unicode(combobox1.currentText())
PyQt4は、QStringがPythonオブジェクトとの間で自動的に変換される新しいAPIを使用するように強制できます。
_import sip
sip.setapi('QString', 2)
_
このAPIでは、_QtCore.QString
_クラスは使用できなくなり、self.ui.comboBox.currentText()
はPython文字列またはUnicodeオブジェクトを返します。
ドキュメントの 互換性のないAPIの選択 を参照してください。
アイテムが変更されたときにComboBoxのテキストを取得する
self.ui.comboBox.activated.connect(self.pass_Net_Adap)
def pass_Net_Adap(self):
print str(self.ui.comboBox.currentText())
QStringオブジェクトのテキスト値が必要な場合は、__str__
プロパティ、次のように:
>>> a = QtCore.QString("Happy Happy, Joy Joy!")
>>> a
PyQt4.QtCore.QString(u'Happy Happy, Joy Joy!')
>>> a.__str__()
u'Happy Happy, Joy Joy!'
お役に立てば幸いです。