как активировать функцию, когда значение из выпадающего списка выбрано в python [duplicate]

Серьезно? Вы никогда не пользовались

where (t.MyTableId == 1 || t.MyTableId == 2 || t.MyTableId == 3)
22
задан Ben 19 May 2011 в 17:37
поделиться

4 ответа

Вы можете преобразовать тип QString в строку python, просто используя функцию str. Предполагая, что вы не используете символы Юникода, вы можете получить строку python, как показано ниже:

text = str(combobox1.currentText())

Если вы используете любые символы в Юникоде, вы можете сделать:

text = unicode(combobox1.currentText())
48
ответ дан unutbu 17 August 2018 в 23:42
поделиться
  • 1
    это идеально! это точно то, что мне нужно было сделать. Теперь я хочу изменить выбранный элемент в поле со списком, не нажимая его. я попробовал .setItemText («выбор текста»), но это дает мне следующую ошибку: TypeError: QComboBox.setItemText (int, QString): аргумент 1 имеет неожиданный тип «str». Я не знаю, какого типа он ожидал или даже если это лучший способ сделать это. Мне нужно будет только изменить выбранный элемент на один из вариантов в списке. – Ben 24 May 2011 в 17:55
  • 2
    Первый аргумент для setItemText - это индекс элемента в QComboBox, значение которого вы хотите изменить. Взгляните на документацию Qt doc.qt.nokia.com/4.7-snapshot/qcombobox.html#setItemText . Вам нужно обратиться к документам API для записи, чтобы ознакомиться с доступными методами, их сигнатурой и т. Д. – sateesh 24 May 2011 в 18:26

Получение текста ComboBox при изменении элемента

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

  def pass_Net_Adap(self):
      print str(self.ui.comboBox.currentText())
1
ответ дан Cholavendhan 17 August 2018 в 23:42
поделиться

PyQt4 может быть принудительно использовать новый API, в котором QString автоматически преобразуется в объект Python и из него:

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

С помощью этого API класс QtCore.QString больше недоступен, а self.ui.comboBox.currentText() вернет строку Python или unicode.

См. Выбор несовместимых API из документа.

3
ответ дан Frodon 17 August 2018 в 23:42
поделиться

Если вам нужно текстовое значение объекта 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 17 August 2018 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: