简单的文档切换器功能?

时间:2017-10-05 02:13:14

标签: c++ qt

我正在编写一个应用程序,允许用户将特定文件拖放到应用程序窗口,解析这些文件,将内容放入表格(通过QStandardItemModel),然后添加每个文件文件的名称(或别名)到单独的树视图(充当文档切换器)。

我将使用NotePad ++作为一个简单的例子。

Example

当我点击最左侧" Doc Switcher中的任何新文件时,"它显示右窗格中的内容。想象一下,右窗格是一个表格。例如,假设左侧的列表是导入应用程序的.csv文件列表。

我想要做的是,点击列表中的每个项目后,我希望相应的已解析.csv文件显示在右侧的表格窗格中。

我的表只是一个QTableView,它在QStandardItemModel中显示.csv文件的内容。在实现表和解析文件时,一切都有效。

我还设置了QTreeWidget作为"文档切换器。"现在,我需要将文档切换器选择链接到表格,以便每个文件的相应内容将显示在表格视图中。

tableView的顶级项目选择发生变化时,我可以让应用程序使用模型内容填充QTreeView。这没问题。问题在于,当选择发生变化时,我应该检查什么。

我不确定如何实现这一点。如何存储一堆QStandardItemModel个对象,然后将它们链接到文档切换器中的名称?我应该这样做吗?我是否必须为导入的每个文件创建新的QStandardItemModel?我应该创建一个QStandardItemModel,然后以某种方式保存它以便稍后撤回并为每个添加的文件重用相同的表模型对象?我只是不确定假设如何工作,感觉我错过了所有这一切的基本部分。

1 个答案:

答案 0 :(得分:1)

我建议两种方法来解决你的问题:

  • 您可以观看文档切换器信号(选择已更改)并为当前选定的数据创建新模型。设置模型时,右侧的表视图应显示数据。选择新文件项时,删除现有模型并使用新数据创建新模型,
  • 与第一种方法相同,但不是为每次数据更改重新创建模型,而是可以使用单个模型,但每次切换文件时都会重置其数据。