要为 QStandardItem
的根节点(或者任何节点)设置图标,您需要使用 setIcon()
方法。在您的代码示例中,如果您想为根节点设置图标,可以如下操作:
修改后的代码片段
在创建模型并添加项的部分,直接在设置根节点之后,为其调用 setIcon()
:
// 创建模型
QStandardItemModel *model = new QStandardItemModel();
// 设置标题
model->setHorizontalHeaderLabels(QStringList() << "Name");
// 添加根节点
QStandardItem *rootItem = model->invisibleRootItem();
rootItem->setIcon(QIcon(":/icons/root_icon.png")); // 设置根节点图标
// 创建第一个子节点
QStandardItem *item1 = new QStandardItem("Node 1");
item1->setIcon(QIcon(":/icons/node_icon.png")); // 设置子节点的图标
// 创建子节点
QStandardItem *child1 = new QStandardItem("Child 1");
child1->setIcon(QIcon(":/icons/child_icon.png")); // 子节点图标
item1->appendRow(child1); // 将子节点添加到父节点
rootItem->appendRow(item1); // 将第一个节点添加到根
// 创建第二个子节点
QStandardItem *item2 = new QStandardItem("Node 2");
item2->setIcon(QIcon(":/icons/node_icon.png"));
rootItem->appendRow(item2); // 将第二个子节点添加到根
注意事项
- 确保路径正确:确保指定的图标文件路径(如
":/icons/root_icon.png"
)在您的资源文件中是有效的,并且这些图片已经被正确地添加到项目资源中。 - 刷新视图:如果在运行时更改了图标,可以调用视图的更新方法,但通常直接设置后,
QTreeView
会自动更新。
通过这种方式,您可以为树视图中的任何级别的项设置自定义图标。
内容由零声教学AI助手提供,问题来源于学员提问