from PyQt5 import QtGui, QtCore, QtWidgets
import sys, os
# subclass
class CheckableComboBox(QtWidgets.QComboBox):
# once there is a checkState set, it is rendered
# here we assume default Unchecked
def addItem(self, item):
super(CheckableComboBox, self).addItem(item)
item = self.model().item(self.count()-1,0)
item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
item.setCheckState(QtCore.Qt.Unchecked)
def itemChecked(self, index):
item = self.model().item(i,0)
return item.checkState() == QtCore.Qt.Checked
# the basic main()
app = QtWidgets.QApplication(sys.argv)
dialog = QtWidgets.QMainWindow()
mainWidget = QtWidgets.QWidget()
dialog.setCentralWidget(mainWidget)
ComboBox = CheckableComboBox(mainWidget)
for i in range(6):
ComboBox.addItem("Combobox Item " + str(i))
dialog.show()
sys.exit(app.exec_())
pyqt5的QCombobox添加checkbox功能
最新推荐文章于 2024-06-22 13:51:39 发布
本文介绍了一种在 PyQt5 中实现可勾选组合框的方法。通过创建 CheckableComboBox 类继承自 QComboBox,并覆盖 addItem 方法来自定义每个项目的检查状态。此外,还提供了 itemChecked 方法来获取指定索引处项目的检查状态。
370

被折叠的 条评论
为什么被折叠?



