Coo*_*der 26 c++ qt drag-and-drop
许多应用程序允许用户将一个或多个文件拖到应用程序的主窗口.
如何在我自己的Qt应用程序中添加对此功能的支持?
bor*_*sbn 42
重载dragEnterEvent()并dropEvent()在您的MainWindow类中,并setAcceptDrops()在构造函数中调用:
MainWindow::MainWindow(QWidget *parent)
{
..........
setAcceptDrops(true);
}
void MainWindow::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls()) {
e->acceptProposedAction();
}
}
void MainWindow::dropEvent(QDropEvent *e)
{
foreach (const QUrl &url, e->mimeData()->urls()) {
QString fileName = url.toLocalFile();
qDebug() << "Dropped file:" << fileName;
}
}
Run Code Online (Sandbox Code Playgroud)