web-dev-qa-db-ja.com

QComboBoxの現在のテキストコンテンツを取得するにはどうすればよいですか?

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)
28
Ben

str関数を使用するだけで、QString型をpython文字列に変換できます。 Unicode文字を使用していないと仮定すると、次のようにpython文字列を取得できます。

text = str(combobox1.currentText())

Unicode文字を使用している場合は、次のことができます。

text = unicode(combobox1.currentText())
56
sateesh

PyQt4は、QStringがPythonオブジェクトとの間で自動的に変換される新しいAPIを使用するように強制できます。

_import sip
sip.setapi('QString', 2)
_

このAPIでは、_QtCore.QString_クラスは使用できなくなり、self.ui.comboBox.currentText()はPython文字列またはUnicodeオブジェクトを返します。

ドキュメントの 互換性のないAPIの選択 を参照してください。

3
Frodon

アイテムが変更されたときにComboBoxのテキストを取得する

     self.ui.comboBox.activated.connect(self.pass_Net_Adap)

  def pass_Net_Adap(self):
      print str(self.ui.comboBox.currentText())
1
Cholavendhan

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!'

お役に立てば幸いです。

0
Raceyman