我想爲我的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