PyQt4,从组合框中获取当前文本
PyQt4, getting current text from comboBox
我有一个非常简单的 GUI,带有一个组合框,有 4 个项目。
这四个项目中的每一个都做独立的事情,并且需要根据 enabling/disabling 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
我有一个非常简单的 GUI,带有一个组合框,有 4 个项目。
这四个项目中的每一个都做独立的事情,并且需要根据 enabling/disabling 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