PyQt5 QComboBox 下拉框学习笔记,按代码一步步来
1. 构造函数
QComboBox 的构造函数是 QComboBox(parent: QWidget = None),应用到代码中如下:
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
cb = QComboBox(self)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
注意,代码中只有 cb = QComboBox(self) 这一句与生成下拉框有关,其余都是为了生成 Qt 界面窗口。之后我们只关注 QComboBox 相关代码即可。
运行后,窗口中出现一个空白的 QComboBox 下拉列表控件,后续我们可以通过操作数据的方法设置数据列表。
2. 数据操作
添加条目项
- addItem(self, str, userData: Any = None)
- addItem(self, QIcon, str, userData: Any = None)
- addItems(self, Iterable[str])
插入条目项
- insertItem(self, int, str, userData: Any = None)
- insertItem(self, int, QIcon, str, userData: Any = None)
- insertItems(self, int, Iterable[str])
设置条目项
- setItemIcon(self, int, QIcon)
- setItemText(self, int, str)
- setItemData(self, int, Any, role: int = Qt.ItemDataRole.UserRole)
删除条目项
- removeItem(self, int)
插分割线
- insertSeparator(self, int)
设置当前编辑文本
- setCurrentIndex(self, int)
- setCurrentText(self, str)
- setEditText(self, str)
展示代码
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
cb = QComboBox(self)
# 增加条目
cb.addItem("ted 1")
cb.addItem("ted 2")
cb.addItems([f"ted {i}" for i in range(3,11)])
# 设置条目
cb.setItemText(9,"ttteed 10")
# 插入分割线
cb.insertSeparator(9)
# 设置默认值
cb.setCurrentIndex(10)
# 按内容来匹配设置