Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.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++ 将QTableWidget的一部分复制到另一个_C++_Qt_Widget - Fatal编程技术网

C++ 将QTableWidget的一部分复制到另一个

C++ 将QTableWidget的一部分复制到另一个,c++,qt,widget,C++,Qt,Widget,我有一个QTableWidget,我使用方法selectedItems()获取我的QTableWidget中选择的所有行。现在我想在一个其他QTableWidget中复制所有这些行,是否有一个特定的函数能够做到这一点,或者我需要使用一个循环 如果我需要使用循环,你能解释一下它是如何工作的吗 谢谢。在@Kuba Ober的帮助下,以下是我的解决方案: //Model of my first QTableWidget QItemSelectionModel *variableModel = ui-&

我有一个
QTableWidget
,我使用方法
selectedItems()
获取我的QTableWidget中选择的所有行。现在我想在一个
其他QTableWidget
中复制所有这些行,是否有一个特定的函数能够做到这一点,或者我需要使用一个循环

如果我需要使用循环,你能解释一下它是如何工作的吗


谢谢。

在@Kuba Ober的帮助下,以下是我的解决方案:

//Model of my first QTableWidget
QItemSelectionModel *variableModel = ui->variableTableWidget->selectionModel();


//I take the cell selected in my QTableWidget ( I suppose only 1 cell is selected )
QModelIndex item;
QTableWidgetItem* itemCompleteTab = new QTableWidgetItem(); //You can't put a cell to another you have to use a new constructor
foreach (item, variableModel->selectedIndexes()) {
            itemCompleteTab->setText(ui->variableTableWidget->item(item.row(),item.column())->text());//Creation of my new cell
            ui->visualisationTableWidget->setItem(0,0,itemCompleteTab);//Add in the QTableWidget
        }

您复制的项目不是小部件的一部分,而是模型的一部分。我认为,
QTableWidget
使用了一个内部的
QStandardItemModel
,该模型具有可复制的项。所以这应该不难,因为该模型只公开了一个
QStandardItem
树。所以,任何从介绍到算法类的树遍历都可以。谢谢你的帮助,所以如果我理解,一旦我用selectedItem获得所有tem,我必须将它放入另一个QstableWidget中,带有QStandardItemModel中的函数?你不会将这些项放入小部件中。你把它们放进模型里。小部件只是模型的一个视图。
QTableWidget
是一个方便的类,可以为您创建自己的模型。因此,您可以向第二个视图询问其模型,然后使用模型的方法向其添加项。视图小部件将自动跟踪模型中的更改。顺便说一句,您可以在同一个模型上有多个视图。例如,您可以创建第三个小部件,即
QTableView
,以显示第二个小部件模型中的项目:)