我想为我的QComboBox
创建一个项目,它在一行中显示一个字符串和4个像素图(最终用法是让用户可以从颜色方案列表中选择)。在Pyside创建QComboBox的自定义项目
任何人都可以帮我定制QStandardItem
以获得这种效果吗?我以为我可以使用这些行来做它,但我没有太多的运气。这是我到目前为止已经试过......
myComboBox = QtGui.QComboBox()
item = QtGui.QStandardItem()
item.setRowCount(4)
colour1 = QtGui.QPixmap(16, 16)
colour1 .fill(QtGui.QColor("red"))
colour2 = QtGui.QPixmap(16, 16)
colour2 .fill(QtGui.QColor("blue"))
colour3 = QtGui.QPixmap(16, 16)
colour3 .fill(QtGui.QColor("white"))
childitem1 = QtGui.QStandardItem(QtGui.QIcon(colour1), "1")
childitem2 = QtGui.QStandardItem(QtGui.QIcon(colour2), "2")
childitem3 = QtGui.QStandardItem(QtGui.QIcon(colour3), "3")
item.setChild(0, childitem1)
item.setChild(1, childitem2)
item.setChild(2, childitem3)
myComboBox.model().appendRow(item)
但我只是得到了孩子们的空白项目,没有一个是可见的 - 有一个很好的机会,我已经完全误解了这是如何工作:)
谢谢您的回复,但不幸的是我没有完全得到我期望的结果。我已经做了这样的: 'itemModel = QtGui.QStandardItemModel() ITEM1 = QtGui.QStandardItem( “1”) ITEM2 = QtGui.QStandardItem( “2”) 项目3 = QtGui.QStandardItem( “3”) itemModel.appendRow([ITEM1,ITEM2,项目3]) myComboBox.setModel(itemModel)' 但结果是一个组合框条目只在它,而不是 “2” 和 “3” 中的第一项为预期 – Nodgers
我想我已经发现了这个问题,Combobox似乎只能一次显示一列,而不是所有3个!我会继续挖掘,看看是否有办法展现更多 – Nodgers