gpt4 book ai didi

python - 更改 QTableModel 中单元格的背景颜色

转载 作者:行者123 更新时间:2023-11-30 05:06:24 24 4
gpt4 key购买 nike

我想为 QTableView 中的单元格着色.

所以我正在尝试更改 itemData关联中相应项目的 QTableModel .

为此,我使用 setItemData QAbstractTableModel 的方法类。

在文档中:

QAbstractItemModel::setItemData(const QModelIndex & index, const QMap < int, QVariant > & roles)

这是我的一段代码:

color = QtGui.QColor(Qt.red)
self.model.setItemData(self.model.index(3,3),color,Qt.BackgroundRole)

我认为这会将模型的第三个单元格(水平和垂直)涂成红色。

但是应用程序回答:

TypeError: QAbstractItemModel.setItemData(QModelIndex, dict-of-int-QVariant): argument 2 has unexpected type 'QColor'

如果我尝试转换 Qcolor输入 Qvariant :

color = Qt.QVariant(QtGui.QColor(Qt.red))
self.model.setItemData(self.model.index(3,3),color,Qt.BackgroundRole)

回答:

TypeError: PyQt4.QtCore.QVariant represents a mapped type and cannot be instantiated

我真的无法理解。

所以我的问题是:我必须将哪种类型的数据放入 setItemData 的第二个参数中方法?

感谢提前

最佳答案

您应该使用 QAbstractItemModel::setDataitemData 中设置单个值 map 。

self.model.setData(self.model.index(3,3),color,Qt.BackgroundRole)

如果您想一次设置多个值,您可以使用QAbstractItemModel::setItemData,但必须构建一个QMap,其中每对由一个角色及其角色组成对应值:

 QMap<int, QVariant> map;
map.insert(Qt::BackgroundRole, color);
self.model.setItemData(self.model.index(3,3), map);

关于python - 更改 QTableModel 中单元格的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47939846/

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