Wiele aplikacji pozwala użytkownikom przeciągnąć plik lub pliki do głównego okna aplikacji.Qt Przeciągnij i upuść: Dodaj obsługę przeciągania plików do głównego okna aplikacji.
Jak mogę dodać obsługę tej funkcji w mojej własnej aplikacji Qt?
Wiele aplikacji pozwala użytkownikom przeciągnąć plik lub pliki do głównego okna aplikacji.Qt Przeciągnij i upuść: Dodaj obsługę przeciągania plików do głównego okna aplikacji.
Jak mogę dodać obsługę tej funkcji w mojej własnej aplikacji Qt?
przeciążeniem dragEnterEvent()
i dropEvent()
w swojej klasie MainWindow
i wywołać setAcceptDrops()
w konstruktorze:
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;
}
}
Najpierw sprawdź Qt Reference Documentation: Drag and Drop do podstaw, a następnie spojrzeć na Drag and Drop of files on QMainWindows do technicznych rzeczy. Ten ostatni stanowi pełny przykład.
Qt ma również wiązkę Drag and Drop examples, możesz być zainteresowany Drop Site.
Dzięki za pomoc! Na pewno się w to zagoszczę. –
Otrzymałem cały kod pod tym linkiem: Drag and Drop files into your application. Na tej stronie można pobrać .zip.
Kod pracował idealny dla mnie, jedyną rzeczą, którą należy zrobić, aby uczynić tę pracę kodu było to w moim mainwindow.h:
#include <QMimeData>
To wszystko, mam nadzieję, że może pomóc Ci.
dziękuję za podjęcie wszystkich bólu, aby napisać kod! –
Nie ma sprawy. Nie napisałem kodu, ale skopiowałem go z mojego źródła))) – borisbn
Po prostu notka: Musiałem nadpisać także metodę 'MainWindow :: dragMoveEvent()', w której po prostu 'acceptProposedAction()' zdarzenie. W przeciwnym razie nie byłoby to dla mnie. – Ancurio