gpt4 book ai didi

python - QListWidget 项目突出显示的项目有不同的颜色

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

我在 PySide2 中有一个 QListWidget,我希望所选项目具有不同的颜色。这可能吗?我将附上两张图片来演示。

我目前拥有的: enter image description here

这就是我想要的:

enter image description here

最佳答案

您必须使用委托(delegate)并覆盖 QStyleOptionViewItem 的 QPalette。在下面的示例中,突出显示颜色取决于它是否是偶数行。

from PySide2 import QtCore, QtGui, QtWidgets
import random


class HighlightedDelegate(QtWidgets.QStyledItemDelegate):
def initStyleOption(self, option, index):
super(HighlightedDelegate, self).initStyleOption(option, index)
# highlight color
color = (
QtGui.QColor("gray")
if index.row() % 2 == 0
else QtGui.QColor("salmon")
)
option.palette.setColor(
QtGui.QPalette.Normal, QtGui.QPalette.Highlight, color
)


if __name__ == "__main__":
import sys

app = QtWidgets.QApplication(sys.argv)

w = QtWidgets.QListWidget(
selectionMode=QtWidgets.QAbstractItemView.MultiSelection
)
delegate = HighlightedDelegate(w)
w.setItemDelegate(delegate)
for i in range(100):
it = QtWidgets.QListWidgetItem("item-{}".format(i))
w.addItem(it)
w.resize(640, 480)
w.show()
sys.exit(app.exec_())

enter image description here

关于python - QListWidget 项目突出显示的项目有不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214108/

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