Qt Drag & Drop: добавление поддержки перетаскивания файлов в главное окно приложения Множество приложений позволяет пользователям перетаскивать файл или файлы в главное окно приложения. Как добавить поддержку этой функции в моем собственном приложении Qt? Ответ 1 Перегрузите 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; } } Ответ 2 Сначала проверьте Qt Reference Documentation: Drag and Drop для основных принципов, а затем посмотрите Перетаскивание файлов в QMainWindows для технических характеристик. Последний дает полный пример. Qt также имеет кучу Примеры перетаскивания, вас может заинтересовать "Drop Site" . Ответ 3 Я получил весь код по этой ссылке: Перетаскивание файлов в ваше приложение. Вы можете скачать ZIP с этой страницы. Код работал идеально для меня, единственное, что я должен сделать, чтобы сделать работу с этим кодом, было включить в мой mainwindow.h: #include <QMimeData> Это все, надеюсь, это может вам помочь.
Ответ 1 Перегрузите 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; } }
Ответ 2 Сначала проверьте Qt Reference Documentation: Drag and Drop для основных принципов, а затем посмотрите Перетаскивание файлов в QMainWindows для технических характеристик. Последний дает полный пример. Qt также имеет кучу Примеры перетаскивания, вас может заинтересовать "Drop Site" .
Ответ 3 Я получил весь код по этой ссылке: Перетаскивание файлов в ваше приложение. Вы можете скачать ZIP с этой страницы. Код работал идеально для меня, единственное, что я должен сделать, чтобы сделать работу с этим кодом, было включить в мой mainwindow.h: #include <QMimeData> Это все, надеюсь, это может вам помочь.