python - PyQt4,从组合框中获取当前文本

标签 python combobox pyqt4

我有一个非常简单的 GUI,带有一个组合框,有 4 个项目。
这四个项目中的每一个都做独立的事情,并且需要在启用/禁用 QLineEdit 框方面链接到 QLineEdit 框,以及能够添加占位符文本基于当前的选择。

代码:

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        self.comboBox = QtGui.QComboBox(self.centralwidget)
        self.comboBox.setGeometry(QtCore.QRect(10, 10, 201, 26))
        self.comboBox.setObjectName(_fromUtf8("comboBox"))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))

        if self.comboBox.currentText() == 'Item1':
            self.lineEdit_5.setDisabled(True)
            self.lineEdit_4.setText('0')  

    def retranslateUi(self, MainWindow):
        self.comboBox.setItemText(0, _translate("MainWindow", "Item1", None))
        self.comboBox.setItemText(1, _translate("MainWindow", "Item2", None))
        self.comboBox.setItemText(2, _translate("MainWindow", "Item3", None))
        self.comboBox.setItemText(3, _translate("MainWindow", "Item4", None))

self.lineEdits 当然是 QLineEdit,即 self.lineEdit_5 = QtGui.QLineEdit()

我在这里做错了什么?

PS:这远不是完整的代码,它被大大简化了,因此很容易阅读,如果您需要更多信息,请告诉我

最佳答案

您需要使用 signal and slots .

每当在 comboBox 中选择一个新项目时,就会发出信号 currentIndexChanged(const QString & text)(text 是文本选择的新项目)。您可以将方法连接到此信号,并通过行编辑执行任何需要的操作。

    self.comboBox.currentIndexChanged[str].connect(self.onChange)

def onChange(self, newText):
    if newText=="Item 1":
        #do this
    else:
        #do that

关于python - PyQt4,从组合框中获取当前文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261766/

相关文章:

delphi - 如何根据输入的内容过滤组合框的内容?

python - PyQt 进度条直到 100% 才更新或出现

python - QMenu 中的 QLabel

python - 如何管理django中的锁写机制

python - 无法正确读取保存为 json 文件的字典

javascript - 如何手动显示 ui.combo 弹出窗口?

python - pyqtgraph自定义缩放问题

python - mysql python 上的更新总是返回 0 作为lastrowid

Python 而不是 True 或 False

java - 无法从组合框中选择项目