QComboBox是Qt中的下拉框控件,它提供了一个选择器,允许用户从一个列表中选择一个或多个项。以下是QComboBox的API大全和演示。
API大全
构造函数
ComboBox(parent: QWidget = None): 创建一个新的QComboBox小部件。
方法
- addItem(text: str, userData=None): 向下拉列表中添加一个新项。
- addItems(items: Iterable[str]): 向下拉列表中添加多个新项。
- insertItem(index: int, text: str, userData=None): 在给定索引处插入一个新项。
- insertItems(index: int, items: Iterable[str]): 在给定索引处插入多个新项。
- removeItem(index: int): 从下拉列表中移除给定索引处的项。
- clear(): 从下拉列表中移除所有项。
- setCurrentIndex(index: int): 设置当前选中项的索引。
- setCurrentText(text: str): 设置当前选中项的文本。
- currentText() -> str: 返回当前选中项的文本。
- currentIndex() -> int: 返回当前选中项的索引。
- count() -> int: 返回下拉列表中的项数。
- itemText(index: int) -> str: 返回给定索引处项的文本。
- setItemText(index: int, text: str): 设置给定索引处项的文本。
- itemData(index: int) -> Any: 返回给定索引处项的用户数据。
- setItemData(index: int, data: Any, role: int = Qt.UserRole): 设置给定索引处项的用户数据。
信号
- currentIndexChanged(int): 当当前选中项的索引发生变化时发出的信号。
- activated(int): 当用户选择某个项时发出的信号。
演示
以下是一个简单的示例,演示了如何创建一个QComboBox小部件,并使用它来选择颜色:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QComboBox
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建一个QComboBox小部件
self.color_combo = QComboBox()
self.color_combo.addItem("Red", "red")
self.color_combo.addItem("Green", "green")
self.color_combo.addItem("Blue", "blue")
self.color_combo.setCurrentIndex(0)
# 创建一个垂直布局,并将小部件添加到其中
layout = QVBoxLayout()
layout.addWidget(self.color_combo)
# 设置主窗口的布局
self.setLayout(layout)
# 连接信号和槽
self.color_combo.currentIndexChanged.connect(self.on_color_changed)
def on_color_changed(self, index):
# 当颜色选项改变时更新窗口的背景颜色
color = self.color_combo.itemData(index)
self.setStyleSheet("background-color: {}".format(color))
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
了一个QComboBox小部件,并将三个颜色选项添加到下拉列表中。我们还将第一个选项设置为默认选项,并将其颜色设置为窗口的背景颜色。当用户选择不同的颜色选项时,我们将更新窗口的背景颜色。这是通过将QComboBox的currentIndexChanged信号连接到MainWindow类的on_color_changed槽来实现的。