将文件从应用程序外部拖放到QTableView中

问题描述 投票:0回答:1

我有一个QTableView,我希望能够将图像文件从应用程序外部拖放到一行上,并且在这种情况下,它需要确定将其拖放到哪一行上,并对文件进行处理(复制到目录,调整大小,添加到db等),最后更新表中该项目/行现在已与之关联的图像文件的列。

我已经知道我可以从QTableView,重新实现dropEvent(QDropEvent *),然后我可以在成员函数内调用QDropEvent :: pos()以获取发生放置的QPoint,然后调用QTableView :: indexAt(const QPoint&)以获取QModelIndex行/列,但随后我不知道如何通过1)QModelIndex和2)QMimeData来通知模型,以便模型可以处理图像的这些操作,还可以使用新数据更新自身并提供该数据查看。

c++ qt drag-and-drop qt4 qt4.8
1个回答
2
投票

bool QAbstractItemModel :: dropMimeData(const QMimeData * data,Qt :: DropAction action,int row,int column,const QModelIndex&parent)[virtual]通知模型的确切函数

  1. QModelIndex和
  2. QMideData

要更新模型-请阅读以下内容:http://doc.qt.nokia.com/4.7-snapshot/qabstractitemmodel.html#dropMimeData这可能会很有帮助(如果您还不熟悉的话)http://www.informit.com/articles/article.aspx?p=1405546

© www.soinside.com 2019 - 2024. All rights reserved.