关于QT的drag和drop功能求教

fanstysword 2011-07-12 05:17:37
QT自带一些简单的drag和drop的处理方法,我现在碰到一个问题。
现有一组图标,在一个widget里,是4X4宫格,希望能做到drag一个图标到其他图标时可以实现插入功能,即drop时可以插入到指定位置,而现在实现却发现drag一个图标时,无论拖到哪里,只能被自动drop放置在最后一个,请问怎么解决。

并且奉上自己的dropEvent代码 请看有没有什么问题

void Test::dropEvent(QDropEvent *event)
{

if (event->mimeData()->hasFormat(constMimeDataFormat)
{
QByteArray itemData = event->mimeData()->data(constMimeDataFormat);
QDataStream dataStream(&itemData, QIODevice::ReadOnly);

QPixmap menuIcon;//menu icon
QString menuName;//menu name
QString menuId;//menu id
QString appName;//App Name
dataStream >> menuIcon >> menuName >> menuId >> appName;

AddMenuItem(menuIcon, menuName,menuId,appName);

if (event->source() == this)
{
event->setDropAction(Qt::MoveAction);
event->setAccepted(true);
}
else
{
event->acceptProposedAction();
}
}

else
{
event->ignore();
}
}
...全文
332 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanstysword 2011-07-13
  • 打赏
  • 举报
回复
上面的希望效果应该是这样的
XOAX
XXXX
XXXX
XXXX
fanstysword 2011-07-13
  • 打赏
  • 举报
回复
我现在有一组图标,是4X4的,比如我要把最后一行的第一列的图标拖动到第一行第二列的位置,当我将这个图标拖动过去后,这个图标却会被自动放置到最后一个图标的位置了
下面这个是我希望的结果,下面的O放置到上面的A上,然后原来的图标往后顺延
XAXX XOAX
XXXX ----》XXXX
XXXX XXXX
OXXX XXXX

但现在的结果是这样的
XAXX
XXXX
XXXX
XXXO

就是这个意思。
qter_wd007 2011-07-12
  • 打赏
  • 举报
回复
"无论拖到哪里,只能被自动drop放置在最后一个"是什么意思?说说

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧