• 4947阅读
  • 1回复

QListWidget支持拖拽问题求助 [复制链接]

上一主题 下一主题
离线shingle
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-06
我现在子类化了QListWidget,在里面重新实现了dragEnterEvent和dropEvent两个函数,如下:
UrlListWidget::UrlListWidget(QWidget *parent) : QListWidget(parent)
{
    setAcceptDrops(true);
}

void UrlListWidget::dragEnterEvent(QDragEnterEvent *event)
{
    if (event->mimeData()->hasFormat("text/uri-list"))
    {
        event->setDropAction(Qt::CopyAction);
        event->acceptProposedAction();
    }
}

void UrlListWidget::dropEvent(QDropEvent *event)
{
    QString url = event->mimeData()->text();
    QMessageBox::information(this, tr("UrlListWidget"),
                                     tr("dropEvent()."));
    event->setDropAction(Qt::CopyAction);
    event->acceptProposedAction();
}
然后尝试着在浏览器中把网址拖入其中,可是debug后发现只有dragEnterEvent得到了调用,dropEvent并没有得到调用,这是怎么回事啊?
离线shingle
只看该作者 1楼 发表于: 2010-04-06
在论坛的其他帖子中看到了回答,解决了,再重写一下mimeTypes()就可以了
QStringList UrlListWidget::mimeTypes () const
{
    QStringList typeList;
    typeList.append("text/plain");
    return typeList;
}
可能是类型不支持的原因吧...还需要研究一下
快速回复
限100 字节
 
上一个 下一个