C++ 自定义QDropAction标签?
在我的项目中,我希望用户能够将文件拖放到我的程序中,并将其打开,就像他们“浏览”文件一样 这是我的密码:C++ 自定义QDropAction标签?,c++,qt,drag-and-drop,C++,Qt,Drag And Drop,在我的项目中,我希望用户能够将文件拖放到我的程序中,并将其打开,就像他们“浏览”文件一样 这是我的密码: void MainWindow::dragEnterEvent(QDragEnterEvent *event) { if (event->mimeData()->hasUrls()) { if(event->mimeData()->urls().size() == 1) { QFileInfo i
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls())
{
if(event->mimeData()->urls().size() == 1)
{
QFileInfo inputFile = event->mimeData()->urls().at(0).toLocalFile();
if(inputFile.suffix() == "dat")
{
event->acceptProposedAction();
}
}
}
}
void MainWindow::dropEvent(QDropEvent* event)
{
inputPath = event->mimeData()->urls().at(0).toLocalFile();
on_actionOpen_Savegame_triggered();
}
一切都按照我的需要进行,除了当用户准备删除文件时,删除操作会显示“复制”
我可以将QDropAction更改为复制、移动、链接或忽略,但不能打开。。。无论如何,我可以删除说“复制”的文本,或者只是将其更改为说“打开”遗憾的是,没有办法更改通过Qt进行拖放时显示的文本(从拖放的发送端或接收端) 在拖放的接收端,您只能接受
Qt::DropAction
中出现的一个可能的event->possibleActions()
(然后我相信这取决于操作系统以它想要的任何方式来解释这个动作。查看drag-enter事件,我看到了一个类似的故事:这个事件唯一可能的响应是选择一个DROPEFFECT
)。我希望有关于这个的清晰的Qt文档,但我一直无法找到它
因此,正如您提到的,您可以将文本更改为“复制”、“移动”、“链接”或“忽略”,但仅此而已