• 5857阅读
  • 0回复

[转载]拖放外部内容到Qt程序中的某个部件中 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2011-01-19
原文见:http://hi.baidu.com/xchinux/blog/item/793a013ba41cdbe014cecb31.html

拖放外部内容到Qt程序中的某个部件中,关键是实现这个部件的三个事件虚函数(前提是设置这个部件的acceptDrops属性为true),下面以拖放外部文件到一个部件上为例说明:
void Widget::dropEvent(QDropEvent *e)
{
if (e->mimeData()->hasUrls())
{
QList<QUrl> urls = e->mimeData()->urls();
QStringList slUrls;
for (int i = 0; i < urls.size(); i++)
{
slUrls << urls.toLocalFile();
}
//e->acceptProposedAction();
e->accept();
// 这里可以开始做其它事情了,已经将文件名放到slUrls变量中了
}
else
{
QWidget::dropEvent(e);
}
}

void Widget::dragMoveEvent(QDragMoveEvent *e)
{
if (e->mimeData()->hasUrls())
{
//e->acceptProposedAction();
e->accept();
}
else
{
QWidget::dragMoveEvent(e);
}
}

void Widget::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls())
{
//e->acceptProposedAction();
e->accept();
}
else
{
QWidget::dragEnterEvent(e);
}
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个