I have QComboBox
我设置了QStandardItemModel
因为我需要其中的多选复选框。
问题是,当我读取文本值并检查组合框中项目的状态时,它们从组合中消失。
这就是我将模型设置为组合框的方法:
areas = ["Area one", "Area two", "Area three", "Area four"]
model = QtGui.QStandardItemModel(4, 1)# 4 rows, 1 col
for i,area in enumerate(areas):
item = QtGui.QStandardItem(area)
item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
item.setData(QtCore.Qt.Unchecked, QtCore.Qt.CheckStateRole)
model.setItem(i, 0, item)
self.ui.comboBox.setModel(model)
这是我从组合框中读取数据的方式:
modelColumn = self.ui.comboBox.model().takeColumn(0)
for item in modelColumn:
print item.text(),"---", item.checkState()
Here is a screenshot before and after I read data from combo box:
...我得到的结果正如预期的那样:
Area one --- 0
Area two --- 2
Area three --- 2
Area four --- 0
另外,是否有简单的方法在组合框处于非活动状态时不显示“区域一”(我只想看到右上角的箭头,如第二张图片)或设置要显示的其他文本,例如“选择区域”?