答案 0 :(得分:2)
一个简单的解决方案是直接使用QTreeWidgetItem。对于项目中的每个文件,创建一个QTreeWidgetItem实例:
QTreeWidgetItem *file = new QTreeWidgetItem(browserWidget);
file->setText(0, filename);
其中“filename”是包含文件名称的字符串。您可以通过解析项目文件来查找以“#include”开头的行来获取文件名。
通过在新项目的构造函数中传递另一个QTreeWidgetItem,可以使新项目成为其他项目的子项。这样您就可以创建目录结构。
要打开文件,您可以连接到QTreeWidget的信号“itemDoubleClicked”。您将获得指向所单击的窗口小部件项的指针。调用“text()”将检索文件名。如果您有目录结构,则还需要为所有父窗口小部件项执行此操作。通过连接字符串,您将获得文件的路径。
您可以在Qt Docs中找到相关示例(请参阅file settingstree.cpp)
只要您的IDE保持简单,这就足够了。更灵活和“面向对象”的解决方案是创建QTreeWidgetItem的子类。您需要覆盖一些方法。由于您可能只需要只读访问权限,因此Qt Docs中描述的四种方法就足够了。