我正在尝试将.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呢?
发布于 2016-04-16 13:24:05
尽管QFileInfo info(e->mimeData()->urls().first().fileName()似乎为可执行文件提供了一个有效的QFileInfo,但它实际上并没有完全工作。
使用toLocalFile()代替fileName()解决了这个问题。
https://stackoverflow.com/questions/36664717
复制相似问题