可以通过遍历整个TreeView来设置每个节点的字体颜色。代码示例:
void setTreeItemFontColor(QTreeView *treeView, const QColor &color)
{
QStandardItemModel *model = qobject_cast<QStandardItemModel*>(treeView->model());
if (!model) {
return;
}
QStandardItem *rootItem = model->invisibleRootItem();
QList<QStandardItem*> items;
// 获取所有子项
for (int i = 0; i < rootItem->rowCount(); ++i) {
items.append(rootItem->child(i));
}
while (!items.isEmpty()) {
QStandardItem *item = items.takeFirst();
// 设置字体颜色
QFont font = item->font();
font.setBold(true);
font.setPointSize(12);
font.setFamily("Microsoft YaHei");
item->setFont(font);
item->setForeground(color);
// 获取子项并添加到列表中
for (int i = 0; i < item->rowCount(); ++i) {
items.append(item->child(i));
}
}
}
调用方式:
QTreeView* treeView = new QTreeView(this);
setTreeItemFontColor(treeView, Qt::red);