我有一个用文件名填充的QListWidget (不带路径的文件名是项的文本,完整路径在项的工具提示中)。例如,我希望能够将电影文件从我的QListWidget拖动到VLC,VLC应该开始播放它-就像我从文件管理器中拖动它一样。
我试着阅读了关于拖放的文档,但是我不知道该怎么做。我已经将dragEnabled属性设置为true,并将dragDropMode属性设置为DragOnly。现在我可以开始拖拽了,但是如果我拖拽一个列表项到VLC,什么也不会发生(这并不奇怪)。
发布于 2012-03-13 19:43:08
我也想做同样的事情,这就是我想出来的。它可以在Windows上运行,但我还没有在其他平台上测试过。
class CustomListWidget : public QListWidget
{
public :
CustomListWidget( QWidget * parent = 0 ) : QListWidget( parent ) {}
protected :
QStringList mimeTypes() const
{
QStringList qstrList;
qstrList.append("text/uri-list");
return qstrList;
}
QMimeData * mimeData( const QList<QListWidgetItem *> items ) const
{
QMimeData *data = new QMimeData();
QList< QUrl > urls;
QUrl url;
url.setPath( items[ 0 ]->toolTip() );
urls.append( url );
data->setUrls( urls );
return data;
}
};https://stackoverflow.com/questions/4295838
复制相似问题