gpt4 book ai didi

c++ - Qt4:从 QAbstractTableModel 中读取默认的 mimeData

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:21 24 4
gpt4 key购买 nike

默认情况下,QAbstractTableModel 类有一个 mimeData() 函数,该函数返回一个 QMimeData 对象,该对象的数据集为编码 QModelIndexList(参见 here)。我想在重载的 dropMimeData() 函数中解压缩此数据,但不知道如何将此 QMimeData 转换回 QModelIndexList。 我尝试了显而易见的:

bool myTableModel::dropMimeData(const QMimeData * mimeData, Qt::DropAction action, int row, int column, const QModelIndex & parent)
{
QStringList formats = mimeData->formats();

QByteArray encodedData = mimeData->data(formats[0]);
QDataStream stream(&encodedData, QIODevice::ReadOnly);
QModelIndexList list;
stream >> index;
}

但出现错误:

 no match for ‘operator>>’ in ‘stream >> ((myTableModel*)this)->QAbstractTableModel::index’

因为 QModelIndex 没有 >> 运算符。

注意:这个问题是 this one 的一个更加集中的版本.抱歉,如果这违反了礼仪,我是新来的。

最佳答案

明白了,感谢旧问题链接上的 Kaleb Peterson:

bool ObjectAnimation::dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent)
{
QStringList formats = data->formats();
QByteArray encodedData = data->data(formats[0]);
QDataStream stream(&encodedData, QIODevice::ReadOnly);

int row, column;
stream >> row >> column;

qDebug() << "row: " << row << " column:" << column;

return false;
}

关于c++ - Qt4:从 QAbstractTableModel 中读取默认的 mimeData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com