QComboBox 怎么获取改变之前的值
时间: 2023-07-23 12:07:14 浏览: 156
可以通过 `currentText()` 或者 `currentIndex()` 方法获取当前 QComboBox 中选中项的文本或者索引值,然后将其保存到变量中,以备后续使用。
例如,使用 `currentTextChanged()` 信号来监测 QComboBox 中选中项的改变,同时将改变之前的值保存到变量 `previousText` 中:
```python
from PyQt5.QtWidgets import QApplication, QComboBox, QWidget, QVBoxLayout
import sys
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.previousText = None
self.initUI()
def initUI(self):
layout = QVBoxLayout()
combo = QComboBox(self)
combo.addItem("Option 1")
combo.addItem("Option 2")
combo.addItem("Option 3")
combo.currentTextChanged.connect(self.onComboChanged)
layout.addWidget(combo)
self.setLayout(layout)
def onComboChanged(self, text):
print("Current text: ", text)
print("Previous text: ", self.previousText)
self.previousText = text
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
```
在上述代码中,我们定义了一个变量 `previousText`,并在 `onComboChanged()` 方法中打印出当前选中项的文本和之前选中项的文本。当选中项发生改变时,我们将当前选中项的文本保存到 `previousText` 变量中。