我正在尝试允许将.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
的文件路径是否正确指向可执行文件。
this question的答案使得任何带有.exe扩展名的文件都应该返回true
,那么为什么QFileInfo::isExecutable()
会返回false?
答案 0 :(得分:1)
即使QFileInfo info(e->mimeData()->urls().first().fileName()
似乎为可执行文件提供了有效的QFileInfo
,但它实际上并没有完全正常工作。
使用toLocalFile()
代替fileName()
解决了问题。