0

好。我正在开发一个 IDE。你们中的一些人可能看过有关它的帖子。好吧,我不知道 QTreeWidget 和 QtreeWidgetItem 是如何工作的,因为找不到演示并且文档没有帮助。好吧,我想做的是一个 IDE,您可以打开项目文件,然后将项目的所有文件包含到树中。(项目文件中的文件通过#include "filename" 包含在内)。我该怎么做?然后单击一个文件并在选项卡中打开它(这是另一个问题)。所以在这部分我只需要一个如何点击文件的例子。:)

4

1 回答 1

2

一个简单的解决方案是直接使用 QTreeWidgetItem。对于项目中的每个文件,创建一个 QTreeWidgetItem 实例:

QTreeWidgetItem *file = new QTreeWidgetItem(browserWidget);
 file->setText(0, filename);

其中“filename”是一个包含文件名的字符串。您可以通过解析项目文件以查找以“#include”开头的行来获取文件名。

通过在新项的构造函数中传递另一个 QTreeWidgetItem,您可以使新项成为其他项的子项。这样您就可以创建目录结构。

要打开文件,您可以连接到 QTreeWidget 的信号“itemDoubleClicked”。您将获得指向单击的小部件项目的指针。调用“text()”将检索文件名。如果您有一个目录结构,您也需要对所有父部件项执行此操作。通过连接字符串,您将获得文件的路径。

您可以在Qt Docs中找到一个示例(参见文件 settingstree.cpp)

只要您的 IDE 保持简单,这就足够了。更灵活和“面向对象”的解决方案是创建 QTreeWidgetItem 的子类。您将需要覆盖一些方法。由于您可能只需要只读访问,因此Qt Docs中描述的四种方法就足够了。

于 2011-03-03T07:46:53.483 回答