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

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

最佳答案

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


QModelIndex和
QMideData


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

关于c++ - 将文件从应用程序外部拖放到QTableView中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9672629/

10-11 19:14