C++ 简单的文档切换功能?
我正在编写一个应用程序,它允许用户将特定文件拖放到应用程序窗口中,解析这些文件,将内容放入表中(通过C++ 简单的文档切换功能?,c++,qt,C++,Qt,我正在编写一个应用程序,它允许用户将特定文件拖放到应用程序窗口中,解析这些文件,将内容放入表中(通过QStandardItemModel),并将每个文件的名称(或别名)添加到一个单独的树视图中(充当文档切换器) 我将使用NotePad++作为一个简单的示例 当我单击最左边的“文档切换器”中的任何新文件时,它会在右侧窗格中显示内容。假设右窗格是一张桌子。例如,假设左侧的列表是导入到应用程序中的.csv文件的列表 我要做的是,单击列表中的每个项目后,我希望相应的已解析.csv文件显示在右侧的表窗格
QStandardItemModel
),并将每个文件的名称(或别名)添加到一个单独的树视图中(充当文档切换器)
我将使用NotePad++作为一个简单的示例
当我单击最左边的“文档切换器”中的任何新文件时,它会在右侧窗格中显示内容。假设右窗格是一张桌子。例如,假设左侧的列表是导入到应用程序中的.csv文件的列表
我要做的是,单击列表中的每个项目后,我希望相应的已解析.csv文件显示在右侧的表窗格中
我的表格只是一个QTableView
,它在QStandardItemModel
中显示.csv文件的内容。当涉及到实现表和解析文件时,一切都是有效的
我还设置了一个QTreeWidget
作为“文档切换器”。现在,我需要将文档切换器选择链接到表,以便每个文件的各自内容都将显示在表视图中
当QTreeView
的顶级项目选择发生变化时,我可以让应用程序用模型内容填充tableView
。没问题。问题在于我应该在选择更改时检查什么以及如何更改
我不确定如何实现这一点。如何存储一堆
QStandardItemModel
对象,然后将它们链接到文档切换器中的名称?我应该这样做吗?是否必须为导入的每个文件创建一个新的QStandardItemModel
?我是否应该创建一个QStandardItemModel
,然后以某种方式保存它以备以后重新提取,并为添加的每个文件重新使用相同的表模型对象?我只是不确定这是如何工作的,我觉得我错过了这一切的一个基本部分。我建议两种方法来解决你的问题:
- 您可以查看文档切换器信号(选择已更改),并为当前选择的数据创建新模型。设置模型时,右侧的表视图应显示数据。选择新文件项后,删除现有模型并使用新数据创建新模型
- 与第一种方法相同,但不是为每次数据更改重新创建模型,而是可以使用单个模型,但在每次切换文件时重置其数据
selectionChanged
信号时,都重置并重新填充数据。如果你加上你的评论作为回答,我会接受的。非常感谢。