【发布时间】:2020-06-19 18:41:32
【问题描述】:
我正在尝试使用 QTableWidget::dropMimeData(). 以编程方式将项目“拖放”到 QTableWidget 上
我知道我要删除哪个项目,我知道QTreeWidget 有一个QTreeWidget::mimeData() 函数,但我不能使用那个mimeData() 函数,因为它受到保护。
基本上,我怎样才能“选择”一个 QTreeWidgetItem,打包它的 mimeData,然后以编程方式将该项目“拖放”到 QTableWidget 上(没有实际的鼠标拖放)?
谢谢。
就实际代码而言:
假设我有一个具有 3 个“级别”的 QTreeWidget
QTreeWidgetItem *item = ui->treeWidget->child(i)->child(j)->child(k);
得到我的 QTreeWidgetItem。
现在假设我想以编程方式将item 放到我的 QTableWidget 上。
我需要使用QTableWidget::dropMimeData(row,col,mimeData,action)(对吗?)
那么我如何从item 获取mimeData(这将是从正常拖动中自动打包的),以便我可以将它放入dropMimeData 的函数调用中?
【问题讨论】:
-
我无法帮助您,因为我不知道您的代码是什么。你手中有什么,你希望最终状态如何?
-
请参阅我的问题底部的新部分。实际上没有为这部分程序编写太多代码。我尝试了几种不同的方法,但我发现最接近的是来自 QTreeWidget 的 mimeData 函数(它是受保护的,所以我不能从我的班级访问/使用它)。
标签: c++ qt qtreewidget qtreewidgetitem