一、前言
QComboBox 提供一个下拉列表,其中包含可供选择的项目。只显示当前选定的项目所需的窗体上的最小屏幕空间。
二、学习目标
1.QComboBox常用方法
2.QComboBox常用信号
3.QComboBox组件的应用
三、知识点
1.【QComboBox常用方法】
方法 | 描述 |
---|---|
addItem() | 增加单个选项内容 |
addItems() | 增加多个, 参数为列表 |
Clear() | 删除下拉列表中的所有选项 |
Count() | 返回下拉列表中的所有项目数量 |
currentText() | 返回当前选中项的文本 |
itemText(i) | 获取索引为i的item文本 |
setItemText(i) | 设置索引为i的item文本 |
currentIndex | 返回当前选中项的索引 |
2.【QComboBox常用信号】
名称 | 描述 |
---|---|
activated() | 选中一个下拉选项的时候发射,不管是否和上次相同 |
currentIndexChanged() | 下拉选项的索引发生变化时发射,如果本次选中的和之前的相同,则不会发射 |
highlighted() | 不管焦点停留在哪个上面都会触发此信号,但是返回的currentText仍为蓝色显示的条目,而不是光标移动到的条目,传递的第二个参数是光标移动到的index |
3.【QComboBox组件的应用】
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QComboBox
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setupUi()
def setupUi(self):
"""页面初始化"""
# 设置窗体大小及标题
self.resize(500, 400)
self.setWindowTitle("QComboBox组件示例")
# 创建布局
self.layout = QVBoxLayout()
# QComboBox组件定义
self.combo = QComboBox(self)
# QComboBox组件设置
self.itmes = ["one", "two", "three", "four"]
self.combo.addItem("zero") # 设置单个项目
self.combo.addItems(self.itmes) # 设置多个项目
# QComboBox关联信号
self.combo.activated.connect(self.on_combo_activated)
# 将组件添加到布局中
self.layout.addWidget(self.combo)
# 为窗体添加布局
self.setLayout(self.layout)
def on_combo_activated(self, index):
"""combo组件槽函数"""
print("combo下拉列表被切换啦:{}!".format(index))
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = QmyWidget()
myMain.show()
sys.exit(app.exec_())
-
关键代码
# QComboBox组件定义 self.combo = QComboBox(self) # QComboBox组件设置 self.itmes = ["one", "two", "three", "four"] self.combo.addItem("zero") # 设置单个项目 self.combo.addItems(self.itmes) # 设置多个项目 # QComboBox关联信号 self.combo.activated.connect(self.on_combo_activated) # combo下拉列表关联信号,切换项目时触发
QComboBox下拉列表增加项目有两种方式,一种是通过addItem()方法增加单个项目;一种是通过addItems()方法增加多个项目