2017-03-12 5 views
1

J'essaie d'utiliser QDesktopServices pour que le système ouvre les fichiers ou dossiers spécifiés.PyQT | QDesktopServices.openUrl Ne fonctionne pas si le chemin a des espaces

Le code ci-dessous fonctionne parfaitement pour les chemins qui ne sont pas des espaces en eux, mais ne parvient pas à exécuter dans le cas contraire

def openFile(self): 

    print self.oVidPath 
    print "\n" 
    url = QUrl(self.oVidPath) 
    QDesktopServices.openUrl(url) 
    self.Dialog.close() 

et la sortie des chemins avec des espaces est

/home/kerneldev/Documents/Why alcohol doesn't come with nutrition facts.mp4 


gvfs-open: /home/kerneldev/Documents/Why%20alcohol%20doesn't%20come%20with%20nutrition%20facts.mp4: error opening location: Error when getting information for file '/home/kerneldev/Documents/Why%20alcohol%20doesn't%20come%20with%20nutrition%20facts.mp4': No such file or directory 

J'ai vérifié que le chemin spécifié existe.

S'il vous plaît Aide

Répondre

3

Vous devez utiliser une URL file://, sinon QUrl traitera le chemin comme une URL de réseau et coder pour une utilisation dans ce contexte. Donc, essayez ceci à la place:

url = QUrl.fromLocalFile(self.oVidPath)