0

我正在尝试允许将 .exe 单元测试文件拖放到QMainWindow. 我的dragEnterEvent样子是这样的:

void MainWindow::dragEnterEvent(QDragEnterEvent *e)
{   
    if (e->mimeData()->hasUrls()) 
    {
        QFileInfo info(e->mimeData()->urls().first().fileName()); // this works
        if (info.isExecutable())   // false for .exe??
            e->acceptProposedAction();      
    }
}

但是该isExecutable()函数对 .exe 文件返回 false。

我拥有该文件的权限,并且我已验证文件路径info是否正确指向可执行文件。

这个问题的答案看起来像任何带有 .exe 扩展名的文件都应该 return true,那么为什么QFileInfo::isExecutable()返回 false 呢?

4

1 回答 1

1

尽管QFileInfo info(e->mimeData()->urls().first().fileName()似乎QFileInfo为可执行文件提供了有效的,但它实际上并没有完全工作。

使用toLocalFile()而不是fileName()解决问题。

于 2016-04-16T13:24:05.543 回答