gpt4 book ai didi

python - 在 Pyside 中为 QComboBox 创建自定义项目

转载 作者:行者123 更新时间:2023-12-01 04:26:08 28 4
gpt4 key购买 nike

我想为我的 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)

但我只是得到一个空项目,并且没有一个子项可见 - 我很可能完全误解了它的工作原理:)

最佳答案

您必须创建一个 QStandarItemModel ,将您的项目附加到其中,最后您必须使用 myComboBox.setModel() 将此模型设置到您的组合框。

类似这样的事情

itemModel = QStandardItemModel()

# create your items as you want
itemModel.appendRow(your_items)

myComboBox.setModel(itemModel)

关于python - 在 Pyside 中为 QComboBox 创建自定义项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33124326/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com