ZBLOG

qtC++给个完整案例使用qtreeView能自定义节点图片

当然可以!以下是一个完整的 Qt C++ 示例,展示如何使用 QTreeView 自定义节点图片。我们将创建一个简单的应用程序,其中包含一个 QTreeView,并为每个节点设置自定义图标。

示例代码

1. 创建项目

首先,创建一个新的 Qt Widgets 应用程序,并添加必要的头文件和源文件。

2. main.cpp

  1. #include <QApplication>
  2. #include <QMainWindow>
  3. #include <QTreeView>
  4. #include <QStringListModel>
  5. #include <QStandardItemModel>
  6. int main(int argc, char *argv[]) {
  7. QApplication a(argc, argv);
  8. QMainWindow w;
  9. // 创建 QTreeView
  10. QTreeView *treeView = new QTreeView(&w);
  11. // 创建模型
  12. QStandardItemModel *model = new QStandardItemModel();
  13. // 设置标题
  14. model->setHorizontalHeaderLabels(QStringList() << "Name");
  15. // 添加根节点
  16. QStandardItem *rootItem = model->invisibleRootItem();
  17. // 创建节点1
  18. QStandardItem *item1 = new QStandardItem("Node 1");
  19. item1->setIcon(QIcon(":/icons/node_icon.png")); // 设置图标(确保路径正确)
  20. // 创建子节点
  21. QStandardItem *child1 = new QStandardItem("Child 1");
  22. child1->setIcon(QIcon(":/icons/child_icon.png")); // 子节点图标
  23. item1->appendRow(child1); // 将子节点添加到父节点
  24. rootItem->appendRow(item1); // 将第一个节点添加到根
  25. // 创建第二个节点
  26. QStandardItem *item2 = new QStandardItem("Node 2");
  27. item2->setIcon(QIcon(":/icons/node_icon.png"));
  28. rootItem->appendRow(item2); // 将第二个节点添加到根
  29. // 设置模型到视图
  30. treeView->setModel(model);
  31. w.setCentralWidget(treeView);
  32. w.resize(400, 300);
  33. w.show();
  34. return a.exec();
  35. }

3. 在项目中添加资源文件(如 .qrc)

为了使用资源中的图标,需要创建资源文件。右键点击项目 -> 添加新文件 -> Qt -> Qt Resource File (.qrc),命名为 resources.qrc,然后在 .qrc 文件中添加图标:

  1. <RCC>
  2. <qresource prefix="/icons">
  3. <file>node_icon.png</file>
  4. <file>child_icon.png</file>
  5. </qresource>
  6. </RCC>

确保你将相应的 node_icon.pngchild_icon.png 文件放置在项目目录下。

4. CMakeLists.txt 或 .pro 文件配置

如果你使用的是 qmake,在 .pro 文件中加入:

  1. RESOURCES += resources.qrc

对于 CMake,可以像这样配置:

  1. qt_add_resources(your_target "resources"
  2. PREFIX "/"
  3. FILES "resources.qrc")

编译和运行

完成上述步骤后,构建并运行你的应用程序。你应该能看到树形视图中的自定义图片。

总结

以上示例展示了如何使用 QTreeView 自定义每个节点的图片。通过调整项属性,我们可以轻松地为树形视图中的每个项设置不同的样式和行为。根据需要扩展这个基础示例,例如增加更多层级、交互或功能。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22245

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?