如何使用 Qt 将 TreeView 链接到 TableView ?例如,我有一个包含项目列表的 treeView
。我还有一个带有模型/ View 实现的 tableView
,以便来自不同文件的数据填充表格。因此,假设每个文件的文件名(在本例中,所有文件都是 CSV)在 treeView
中列为一个项目。我想做的是链接 treeView
中的每个 .csv
项,以显示在 treeView< 中选择的 .csv 文件的解析内容
。我希望该数据显示在 tableView
中。我已经分别实现了树和表——它们可以工作——我只是不知道如何将它们链接在一起。如何让我在 TreeView 中选择相应的项目后才在表格中显示我解析的数据?
最佳答案
Qt itemviews 系统不会自动为您提供此功能,但使用信号/插槽连接很容易获得该行为。
当用户在 QTreeView 中选择不同的行时,QTableView 应使用 QTreeView 中该行所代表的 .CSV 文件的内容重新填充自身。这可以通过将 QTreeView 的 SelectionModel 对象的 selectionChanged() 方法连接到将执行表重新填充操作的槽来实现。即类似的东西:
connect(myTreeWidget->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), someObjectInYourProgram, SLOT(RepopulateTableView()));
...然后让您的 RepopulateTableView() 插槽方法查看当前在 QTreeView 对象中选择了哪些行,并根据它们重新填充其内容。
(旁注:您可以让 RepopulateTableView() 使用直接来自 selectionChanged() 信号的参数,但我经常发现让它使用单独提供的指针检查 QTreeView 的 selectionModel 对象更有用,因为那样RepopulateTableView() 可以从除此信号之外的其他上下文轻松调用)
关于c++ - 将 TreeView 链接到 TableView ? [Qt],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44711085/