Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将树视图链接到表视图?[Qt]_C++_Qt - Fatal编程技术网

C++ 将树视图链接到表视图?[Qt]

C++ 将树视图链接到表视图?[Qt],c++,qt,C++,Qt,如何使用Qt将树视图链接到表视图?例如,我有一个treeView,其中有一个项目列表。我还有一个带有模型/视图实现的tableView,以便来自不同文件的数据填充该表。因此,假设每个文件的文件名(在本例中,所有文件都是CSV)都列为treeView中的一项。我想做的是链接treeView中的每个.csv项,以显示在treeView中选择的.csv文件的解析内容。我希望这些数据显示在表视图中。我已经分别实现了树和表——它们可以工作——我只是不知道如何将它们链接在一起。只有在树视图中选择相应的项后,

如何使用Qt将树视图链接到表视图?例如,我有一个
treeView
,其中有一个项目列表。我还有一个带有模型/视图实现的
tableView
,以便来自不同文件的数据填充该表。因此,假设每个文件的文件名(在本例中,所有文件都是CSV)都列为
treeView
中的一项。我想做的是链接
treeView
中的每个
.csv
项,以显示在
treeView
中选择的.csv文件的解析内容。我希望这些数据显示在
表视图中。我已经分别实现了树和表——它们可以工作——我只是不知道如何将它们链接在一起。只有在树视图中选择相应的项后,我如何才能使解析数据显示在表中?

Qt ItemView系统不会自动提供此功能,但使用信号/插槽连接很容易获得行为

当用户在QTreeView中选择其他行时,QTableView应使用该行在QTreeView中表示的.CSV文件的内容重新填充自身。这可以通过将QTreeView的SelectionModel对象的selectionChanged()方法连接到将执行表重新填充操作的插槽来实现。i、 e.类似于:

connect(myTreeWidget->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), someObjectInYourProgram, SLOT(RepopulateTableView()));
。。。然后让RepopulateTableView()slot方法查看QTreeView对象中当前选择的行,并基于这些行重新填充其内容


(旁注:您可以让RepopulateTableView()直接从selectionChanged()信号中使用参数,但我经常发现,让它使用单独提供的指针检查QTreeView的selectionModel对象更有用,因为这样,除此信号外,还可以从其他上下文轻松调用RepopulateTableView()

这真的帮助我实现了我想要的目标。非常感谢。作为后续工作,我想知道
RepopulateTableView()
函数在设计上看起来如何。具体来说,如果我在
QTreeView
中有多个文件条目,每个条目是否都链接到不同的表模型?也就是说,每个文件的数据都应该有自己的模型来保存数据,还是这样做是错误的?我认为这样做是好的;或者,您也可以使用单个表模型对象,每当选择新文件时,都会导致其行为发生更改。任何一种方法都可以奏效。