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

标签 c++ qt drag-and-drop qt4 qt4.8

我有一个 QTableView,我希望能够从应用程序外部将图像文件拖放到一行上,在发生此事件时,它需要确定它被拖放到哪一行,对文件进行操作(复制到一个目录,调整大小,添加到数据库,...),最后更新表中的一列,该项目/行现在有一个与之关联的图像文件。

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

最佳答案

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

  1. QModelIndex 和
  2. 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/

相关文章:

qt - TableView 上的 Keys.onPressed 调用了两次

c# - 我如何支持在 Winforms 中拖放文件夹?

windows - Electron:在图标上拖放文件

java - jstring/c++ 的 Ljava/lang/String 错误

c++ - std::shared_ptr operator [] 等效访问

c++ - Qt中的信号和槽

python - 在 Qt 中仅从 Outlook 拖放一个附件?

android - 无法将 UI 元素拖动到 Android 布局 Eclipse

c++ - 重载模板类比较运算符

c++ - 无法将整数写入字符串