要设置 TreeView 中某个项的边框样式,可以使用 QStandardItem 的 setData() 方法来设置该项的 Qt::DecorationRole 角色。
具体步骤如下:
获取该父项的 QModelIndex 对象。
创建一个 QPen 对象,设置其颜色和宽度。
创建一个 QPixmap 对象,绘制一个矩形并填充颜色。
将该 QPixmap 对象传入 QStandardItem 的 setData() 方法中,并设置 Qt::DecorationRole 角色。
刷新 TreeView 以更新边框样式。
以下是示例代码:
// 获取父节点的索引
QModelIndex parentIndex = model->indexFromItem(parentItem);
// 设置父节点边框样式
QColor borderColor(Qt::red);
int borderWidth = 2;
QPen pen(borderColor, borderWidth);
QPixmap pixmap(20, 20);
pixmap.fill(QColor(0, 0, 0, 0));
QPainter painter(&pixmap);
painter.setPen(pen);
painter.drawRect(0, 0, 19, 19);
parentItem->setData(pixmap, Qt::DecorationRole);
// 刷新TreeView
treeView->update(parentIndex);
在上述代码中,我们首先创建了一个 QPen 对象,设置其颜色为红色,宽度为 2。然后创建了一个 QPixmap 对象,大小为 20x20,填充透明颜色。接着创建了一个 QPainter 对象,设置画笔为上面创建的 QPen,绘制了一个大小为 19x19 的矩形。最后将该 QPixmap 对象传入 QStandardItem 的 setData() 方法中,并设置 Qt::DecorationRole 角色。
最后通过 treeView->update(parentIndex) 方法来刷新 TreeView,使其更新父项的边框样式。