📅  最后修改于: 2023-12-03 15:03:57.514000             🧑  作者: Mango
QComboBox 是 PyQt5 中的一个控件,它提供了一种让用户从列表中选择项的方法。在本文中,我们将介绍如何使用 QComboBox 控件获取所选项目。
我们可以使用以下代码创建一个简单的 QComboBox 控件:
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QComboBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.combo = QComboBox(self)
self.combo.addItem("Item 1")
self.combo.addItem("Item 2")
self.combo.addItem("Item 3")
vbox = QVBoxLayout()
vbox.addWidget(self.combo)
self.setLayout(vbox)
self.show()
这个代码会创建一个窗口,并在窗口中添加一个包含几个项目的 QComboBox 控件。
我们可以使用 currentItemText() 方法获取当前所选项目的文本:
selected_item = self.combo.currentItemText()
selected_item 变量将保存当前所选项目的文本。我们还可以使用 currentIndex() 方法获取所选项目的索引:
selected_index = self.combo.currentIndex()
selected_index 变量将保存当前所选项目的索引。
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QComboBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.combo = QComboBox(self)
self.combo.addItem("Item 1")
self.combo.addItem("Item 2")
self.combo.addItem("Item 3")
self.combo.currentIndexChanged.connect(self.selectionchange)
vbox = QVBoxLayout()
vbox.addWidget(self.combo)
self.setLayout(vbox)
self.show()
def selectionchange(self, i):
selected_item = self.combo.currentItemText()
selected_index = self.combo.currentIndex()
print("Selected Item Text: ", selected_item)
print("Selected Item Index: ", selected_index)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
这个代码将创建与前面代码片段相同的 QComboBox 控件,并添加一个 currentIndexChanged 信号和一个槽函数。当选项更改时,槽函数会打印所选项目的文本和索引。
值得注意的是,如果没有选择项目,currentItemText() 和 currentIndex() 方法将返回一个空字符串和 -1,因此在使用这些方法前,应检查它们是否有效。
本文中,我们展示了如何使用 PyQt5 的 QComboBox 控件获取所选项目。通过这些简单的代码,大家可以使用 QComboBox 控件以提供一个可用的下拉式菜单,并获得所选项目的值。