python PyQt5 QComboBox类(下拉列表框、组合下拉框)

https://doc.qt.io/qtforpython/PySide2/QtWidgets/QComboBox.html?highlight=qcombobox#PySide2.QtWidgets.QComboBox

继承关系

在这里插入图片描述

细节描述

在这里插入图片描述
QComboBox提供了一种以占用最少屏幕空间的方式向用户显示选项列表的方法。

组合框是显示当前项目的选择小部件,并且可以弹出可选项目的列表。组合框可能是可编辑的,允许用户修改列表中的每个项目。

组合框可以包含像素图和字符串。适当地重载了insertItem()和setItemText()函数。对于可编辑的组合框,提供了函数clearEditText(),以清除显示的字符串而不更改组合框的内容。

如果组合框的当前项发生更改,则会发出两个信号,分别是currentIndexChanged()和Activated()。无论更改是通过编程方式还是通过用户交互进行,始终都会发出currentIndexChanged(),而仅当更改是由用户交互引起时才发出activate()。当用户突出显示组合框弹出列表中的一个项目时,将发出highlighted()信号。所有这三个信号都有两个版本,一个带有QString参数,另一个带有int参数。如果用户选择或突出显示一个像素图,则仅会发出int信号。只要更改了可编辑组合框的文本,就会发出editTextChanged()信号。

当用户在可编辑的组合框中输入新字符串时,该窗口小部件可能会插入也可能不会插入,并且可以将其插入多个位置。默认策略是InsertAtBottom,但是您可以使用setInsertPolicy()进行更改。

使用QValidator可以将输入限制为可编辑的组合框;参见setValidator()。默认情况下,接受任何输入。

例如,可以使用插入函数insertItem()和insertItems()来填充组合框。可以使用setItemText()更改项目。可以使用removeItem()删除项目,并可以使用clear()删除所有项目。当前项目的文本由currentText()返回,而编号项目的文本与text()返回。可以使用setCurrentIndex()设置当前项目。组合框中的项目数由count()返回;可以使用setMaxCount()设置最大项目数。您可以使用setEditable()进行编辑。对于可编辑的组合框,您可以使用setCompleter()设置自动完成功能,并且可以使用setDuplicatesEnabled()设置用户是否可以添加重复项。

QComboBox使用模型/视图框架为其弹出列表并存储其项目。默认情况下,QStandardItemModel存储项目,而QListView子类显示弹出列表。您可以直接访问模型和视图(使用model()和view()),但是QComboBox还提供用于设置和获取项目数据的函数(例如setItemData()和itemText())。您还可以设置新模型和视图(使用setModel()和setView())。对于组合框标签中的文本和图标,将使用模型中具有DisplayRole和DecorationRole的数据。请注意,您无法更改view()的SelectionMode,例如,使用setSelectionMode()。

See also

QLineEditQSpinBoxQRadioButtonQButtonGroupGUI Design Handbook: Combo Box, Drop-Down List Box
class QComboBox([parent=None])¶
param parent
QWidget

使用默认模型QStandardItemModel用给定的父级构造一个组合框。

示例

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要获取PyQt5中QComboBox所有下框的值,可以使用以下的方法: 1. 创建一个QComboBox对象,并将所需的下框选项添加到它中。 ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QComboBox class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) comboBox = QComboBox(self) comboBox.addItem("Option 1") comboBox.addItem("Option 2") comboBox.addItem("Option 3") comboBox.activated[str].connect(self.onActivated) self.show() def onActivated(self, text): print(text) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 在上面的示例中,创建了一个QComboBox并将三个选项添加到其中。当选择其中一个选项时,会调用onActivated函数并传入选中的选项文本。在这个函数中,你可以打印所选选项的值或执行其他操作。 2. 使用currentIndex方法获得当前选中的索引,并通过itemText方法获取选项的文本: ```python selected_text = comboBox.itemText(comboBox.currentIndex()) print(selected_text) ``` 通过上述方法,你可以获取当前选中的下框选项的文本。 3. 要获取所有下框的值,可以使用count方法获取下框中选项的数量,并通过for循环遍历每个选项,然后通过itemText方法获取每个选项的文本: ```python for i in range(comboBox.count()): print(comboBox.itemText(i)) ``` 上述代码将打印每个下框选项的文本。你可以根据需求进行进一步的处理。 ### 回答2: 使用PyQt5中的QComboBox类可以很方便地获取所有下框的值。下面是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QComboBox class MainWindow(QMainWindow): def __init__(self): super().__init__() self.comboBox1 = QComboBox(self) self.comboBox1.addItem("选项1") self.comboBox1.addItem("选项2") self.comboBox1.addItem("选项3") self.comboBox2 = QComboBox(self) self.comboBox2.addItem("选项A") self.comboBox2.addItem("选项B") self.comboBox2.addItem("选项C") self.comboBox3 = QComboBox(self) self.comboBox3.addItem("选项X") self.comboBox3.addItem("选项Y") self.comboBox3.addItem("选项Z") self.setCentralWidget(self.comboBox1) self.getAllValues() def getAllValues(self): values = [] # 添加comboBox1的值 for i in range(self.comboBox1.count()): values.append(self.comboBox1.itemText(i)) # 添加comboBox2的值 for i in range(self.comboBox2.count()): values.append(self.comboBox2.itemText(i)) # 添加comboBox3的值 for i in range(self.comboBox3.count()): values.append(self.comboBox3.itemText(i)) print(values) if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 在这个例子中,我们创建了3个QComboBox框,并添加了不同的选项。然后,通过调用getAllValues()方法,可以获取所有下框的值并打印出来。在该方法中,我们通过遍历每个下框的count()方法获取下框中选项的数量,然后通过itemText()方法获取每个选项的文本值,并将其添加到一个列表中。 以上代码可以运行并输出下框的值,对应本示例即["选项1", "选项2", "选项3", "选项A", "选项B", "选项C", "选项X", "选项Y", "选项Z"]。请根据自己的实际情况修改代码对应下框及选项的数量和内容。 ### 回答3: 要获取QComboBox中所有下框的值,可以使用PyQt5库中的`currentText()`和`count()`方法来实现。 1. 首先,创建一个QComboBox对象,并添加需要的下框值: ``` comboBox = QComboBox() comboBox.addItem("值1") comboBox.addItem("值2") comboBox.addItem("值3") ``` 2. 使用`count()`方法获取下框的总数: ``` count = comboBox.count() ``` 3. 使用循环和`currentText()`方法依次获取每个下框的值,并将它们存储在一个列表中: ``` values = [] for i in range(count): value = comboBox.itemText(i) values.append(value) ``` 4. 现在,`values`列表中包含了所有下框的值。 完整的代码如下: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QComboBox app = QApplication([]) window = QMainWindow() comboBox = QComboBox() comboBox.addItem("值1") comboBox.addItem("值2") comboBox.addItem("值3") count = comboBox.count() values = [] for i in range(count): value = comboBox.itemText(i) values.append(value) window.show() app.exec_() ``` 通过以上代码,你可以通过访问`values`列表获取到QComboBox中所有下框的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值