J'écris une application graphique PyGTK dans Ubuntu pour parcourir certaines images, et je voudrais ouvrir une image dans l'application de visionneuse d'image par défaut quand elle est double-cliquée (comme quand elle est ouvert à Nautilus).
Comment puis-je le faire?Lancer la visionneuse d'images par défaut à partir du programme pygtk
1
A
Répondre
3
Je ne sais pas précisément à l'aide PyGTK mais: xdg-open
ouvre l'application par défaut pour un fichier en cours d'exécution afin quelque chose comme ça devrait fonctionner:
import os
os.system('xdg-open ./img.jpg')
EDIT: Je suggère d'utiliser le module comme subprocess
dans les commentaires. Je ne suis pas sûr exactement comment l'utiliser encore si je viens d'utiliser os.system
dans l'exemple pour afficher xdg-open
.
2
GTK (> = 2.14) a gtk_show_uri:
gtk.show_uri(screen, uri, timestamp)
Exemple d'utilisation:
gtk.show_uri(None, "file:///etc/passwd", gtk.gdk.CURRENT_TIME)
connexes
3
Sous GNU/Linux, utilisez xdg-open
, sous Mac, utilisez open
, sous Windows, utilisez start
. En outre, utilisez subprocess
, sinon vous risquez de bloquer votre application lorsque vous appelez l'application externe.
C'est ma mise en œuvre, elle pourra être utile: http://goo.gl/xebnV
import sys
import subprocess
import webbrowser
def default_open(something_to_open):
"""
Open given file with default user program.
"""
# Check if URL
if something_to_open.startswith('http') or something_to_open.endswith('.html'):
webbrowser.open(something_to_open)
return 0
ret_code = 0
if sys.platform.startswith('linux'):
ret_code = subprocess.call(['xdg-open', something_to_open])
elif sys.platform.startswith('darwin'):
ret_code = subprocess.call(['open', something_to_open])
elif sys.platform.startswith('win'):
ret_code = subprocess.call(['start', something_to_open], shell=True)
return ret_code
Questions connexes
- 1. Découverte si une visionneuse par défaut existe
- 2. lancer par programme sketchflow player
- 3. Démarrer PyGTK CellRenderer modifier à partir du code
- 4. Exécution d'une visionneuse CAD à partir du serveur
- 5. .net cf - lancer l'explorateur par programme
- 6. Appel du constructeur par défaut à partir du constructeur paramétré
- 7. Comment lancer le programme généré par pyuic4?
- 8. Lancer la visionneuse d'intention pour afficher l'image depuis l'URL
- 9. Lancer le modal à partir du contrôleur
- 10. Comment définir le bouton par défaut dans PyGTK?
- 11. Pygtk et défaut de segmentation
- 12. Lancer l'application silverlight à partir du navigateur
- 13. Comment lancer le lecteur multimédia par défaut à partir d'une application .NET?
- 14. Pour connaître l'APN par défaut par programme?
- 15. NSIS pour définir le programme par défaut pour lancer le type de fichier spécifié
- 16. Lancer l'application Android de messagerie par défaut par clic btn
- 17. Lancer la tâche planifiée à partir du script
- 18. Comment puis-je lancer par programme (C++) une application à partir d'un raccourci Windows (fichier .lnk)?
- 19. comment lancer une instance de navigateur par défaut dans une fenêtre de programme?
- 20. Eclipse + Java: Comment importer des classes à partir du paquetage par défaut?
- 21. Opacité du widget PyGTK
- 22. Affichage d'images dans un programme PyGTK py2exe'd
- 23. Comment lancer un programme en tant qu'utilisateur normal à partir d'un programme d'installation surélevé UAC
- 24. Comment associer une extension de fichier à un programme sans en faire le programme par défaut
- 25. Lancer l'éditeur de contenu à partir du code
- 26. Développement Android: définir un programme par défaut
- 27. lancer un programme gui à partir de la console windows et le faire se détacher
- 28. Y at-il une classe pour obtenir la visionneuse d'image par défaut dans une application?
- 29. Ouverture d'un fichier dans son programme par défaut à partir de VB6
- 30. WPF DatePicker par défaut à la date du jour
fonctionne très bien, merci! – mooware
Utilisation inutile de 'system'. Cela devrait être 'subprocess.check_call ([" xdg-open ", nom de fichier])'. – Philipp
Salut Philipp, quel est le problème avec l'utilisation de 'système'? – mooware