QFileInfo::isExecutable() returns 对于“.exe”文件为 false

QFileInfo::isExecutable() returns false for ".exe" file

我正在尝试允许将 .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() 函数 return 对于 .exe 文件是错误的。

我有权访问该文件,并且我已验证 info 中的文件路径正确指向可执行文件。

this question 的答案使得任何带有 .exe 扩展名的文件看起来都应该 return true,所以为什么 QFileInfo::isExecutable() returning假的?

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

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