Ich versuche, Drag-and-Drop von .exe Einheitentestdateien in eine QMainWindow
zuzulassen. Mein dragEnterEvent
sieht wie folgt aus:QFileInfo :: isExecutable() gibt false für die Datei ".exe" zurück.
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();
}
}
jedoch die isExecutable()
Funktion für EXE-Dateien false zurückgibt.
Ich habe Berechtigungen für die Datei, und ich habe überprüft, dass der Dateipfad von info
korrekt auf die ausführbare Datei verweist.
Die Antwort auf this question macht es mit den EXE-Erweiterungen wie jede Datei erscheinen sollte true
zurückkehren, also warum ist QFileInfo::isExecutable()
falsche Rückkehr?
Beachten Sie, dass der Dateiname nur unter Windows die Ausführbarkeit (.exe, .com) angibt. Auf anderen Systemen, wie z. B. UNIX, hat eine ausführbare Datei nichts mit ihrem Namen zu tun, sondern ist ein separates Flag. Nur zu deiner Information. –