多くのアプリケーションでは、ユーザーは1つまたは複数のファイルをアプリケーションのメインウィンドウにドラッグできます。
自分のQtアプリケーションでこの機能のサポートを追加するにはどうすればよいですか?
多くのアプリケーションでは、ユーザーは1つまたは複数のファイルをアプリケーションのメインウィンドウにドラッグできます。
自分のQtアプリケーションでこの機能のサポートを追加するにはどうすればよいですか?
オーバーロード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;
}
}
まず、Qt Reference Documentation: Drag and Dropで基礎を確認し、技術的な内容についてはQMainWindows でのファイルのドラッグ アンド ドロップを参照してください。後者は完全な例を提供します。
Qt にはドラッグ アンド ドロップの例もたくさんあります。ドロップ サイトに興味があるかもしれません。