【发布时间】:2016-01-12 11:34:30
【问题描述】:
我想为我的QComboBox 创建一个项目,它连续显示一个字符串和 4 个像素图(最终用途是让用户可以从配色方案列表中进行选择)。
谁能帮我自定义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)
但我只是得到一个空的项目,没有一个孩子是可见的 - 很有可能我完全误解了它是如何工作的 :)
【问题讨论】:
标签: python qt pyqt pyside qcombobox