Qt的实现
Qt的拖拽文件进入窗口识别文件名,一般可以用一下Qt的事件实现:
this->setAcceptDrops(true); //控件或者窗口
virtual void dragEnterEvent(QDragEnterEvent* e) override;
virtual void dropEvent(QDropEvent* e) override;
virtual void dragMoveEvent(QDragMoveEvent* e) override;
//dragMoveEvent可以不用重写
void MainWidget::dragEnterEvent(QDragEnterEvent* e)
{
if (true) //鉴别是不是需要接收
{
e->acceptProposedAction();
}
}
void MainWidget::dropEvent(QDropEvent* e)
{
m_pathlist.clear();
QList<QUrl> urls = e->mimeData()->urls();
if (urls.isEmpty())
return;
int nsize = urls.size();
for(QUrl u : urls)
{
QString filepath = u.toLocalFile();
m_pathlist.append(filepath);
}
imp->textEditFilePath->clear();
for (QString path : m_pathlist)
{
imp->textEditFilePath->append(path);
}
}
vo