28

多くのアプリケーションでは、ユーザーは1つまたは複数のファイルをアプリケーションのメインウィンドウにドラッグできます。

自分のQtアプリケーションでこの機能のサポートを追加するにはどうすればよいですか?

4

2 に答える 2

46

オーバーロード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;
    }
}
于 2013-02-15T13:05:17.570 に答える
7

まず、Qt Reference Documentation: Drag and Dropで基礎を確認し、技術的な内容についてはQMainWindows でのファイルのドラッグ アンド ドロップを参照してください。後者は完全な例を提供します。

Qt にはドラッグ アンド ドロップの例もたくさんあります。ドロップ サイトに興味があるかもしれません。

于 2013-02-15T13:09:52.590 に答える