【问题标题】:QComboBox setCurrentIndex by textQComboBox setCurrentIndex by text
【发布时间】:2018-01-02 03:37:54
【问题描述】:

我有一个 ComboBox,里面有不同的值:是,否。

我可以通过从输入接收到的值来设置 ComboBox 吗?我不想通过 index# 来设置它。我也想尽量远离 if 语句。

我尝试过这样的事情:

    self.UnlHE_Drop = QtWidgets.QComboBox(self.scrollAreaWidgetContents)
    self.UnlHE_Drop.setObjectName("UnlHE_Drop")
    self.UnlHE_Drop.addItem("")
    self.UnlHE_Drop.setItemText(0, "")
    self.UnlHE_Drop.addItem("")
    self.UnlHE_Drop.addItem("")

def retranslateUi(self, VlS):
    _translate = QtCore.QCoreApplication.translate
    VlS.setWindowTitle(_translate("VlS", "Value"))
    self.UnlHE_Drop.setItemText(1, _translate("VlS", "Yes"))
    self.UnlHE_Drop.setItemText(2, _translate("VlS", "No"))
    self.UnlHE_DropInfo = QInputDialog.getText(None, 'Answer:', 'Yes or No:')
    self.UnlHE_Drop.setCurrentIndex(self.UnlHE_Drop.findText(self.UnlHE_DropInfo))

【问题讨论】:

  • 哪个返回self.UnlHE_Drop.findText函数?
  • 什么是UnlHE_Drop
  • 一般来说,解决方案似乎是正确的,除非用户设置了不合适的值。
  • UnlHE_Drop 是组合框的名称。当我尝试使用我粘贴的内容时,它不会为任何东西设置价值。它是空白的,下拉菜单被禁用
  • 您是否已将项目添加到 QComboBox?

标签: python python-3.x pyqt pyqt5 qcombobox


【解决方案1】:

首先,您必须将项目添加到 QComboBox,因为当您使用 findText 时,您正在寻找这些项目,另一件事是 QInputDialog.getText 返回一个元组,第一个是输入的值,第二个是一个布尔值,指示是否你按是或否。

self.UnlHE_Drop = QtWidgets.QComboBox(self.scrollAreaWidgetContents)
self.UnlHE_Drop.addItems(["Yes", "No"])
UnlHE_DropInfo, ok = QInputDialog.getText(None, 'Answer:', 'Yes or No:')
if ok:
    self.UnlHE_Drop.setCurrentText(UnlHE_DropInfo)

【讨论】:

    【解决方案2】:

    一旦该值已经是QComboBox 中的一个选项,您就可以使用setCurrentText(QString text) 将其设置为该值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 2018-04-24
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多