41

pyqt4とpython2.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)
4

4 に答える 4

86

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

text = str(combobox1.currentText())

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

text = unicode(combobox1.currentText())
于 2011-05-19T18:09:20.003 に答える
4

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

import sip
sip.setapi('QString', 2)

このAPIを使用すると、QtCore.QStringクラスは使用できなくなりself.ui.comboBox.currentText()、Python文字列またはUnicodeオブジェクトが返されます。

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

于 2015-04-14T13:59:07.977 に答える
3

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

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

  def pass_Net_Adap(self):
      print str(self.ui.comboBox.currentText())
于 2012-03-14T16:12:28.357 に答える
0

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

お役に立てば幸いです。

于 2011-05-19T17:43:31.977 に答える