IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

pb passage arguments


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut pb passage arguments
    Bonjours,
    alors voila j'ai réalisé une petite visionneuse d'images en python avec Tkinter, PIL, tkFileDialog et sys. Tout marche impec quand je lance le script, je peux ouvrir des photos et les visionner nikel. Mais je voudrais aller plus loin et faire que quand on fait un <click droit> en ayant selectionné plusieurs images, on puisse ouvrir ces images avec mon logiciel.

    J'ai donc :
    self.picture = sys.argv[1:]

    et apres tout ce qu'il faut pour ouvrir les images.

    Cela fonctionne depuis la console quand je lance avec :

    python Picture_viewer.py foto1.jpg foto2.jpg .....

    Mais en ouvrant directement depuis l'interface graphique avec une command personnalisée :

    '/home/.../Picture_viewer.py'
    (apres avoir changé le droit d'éxécution du fichier)

    mes photos s'ouvrent belle et bien mais chacune dans une <<version du script>> ouverte séparement (cf si j'ai ouvert 3 photos => trois fois l'application ouverte, chaque version contenant une des 3 photos)

    Et donc je voudrais quee toutes s'ouvrent dans une seule application ...

    Quelqu'un aurait la solution?
    merci d'avance.

    luffy

    NB: Vous pouvez retrouver une de mes versions précédentes (assez ancienne^^) a :
    http://luffy.luck.free.fr/dokuwiki-r...u.php?id=start

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    je pense qu'il faut que tu detecte quand tu as un instance de ton programme déjà lancé.
    ou alors que tu divise tes agument en deux.
    en premier tu ouvre le logiciel avec la première image.
    puis au démarrage (lancement du prog) tu teste si tu as d'autre argument , si oui tu ouvre les images, sinon tu passes.

    suis je assez clair?
    ++

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut Merci de la reponse
    yop,
    ouais je vois je fonctionnement, le plus facil en fait serait apparement de tester si j'ai deja une instance de l'application ouverte. Tu aurait une solution pour faire ca?

  4. #4
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    euh... un petit tour dans la faq......

    http://python.developpez.com/faq/?pa...es#UneInstance

    ++

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut tanx
    ouep merci en fait cela va m'aider a gerer l'ouverture de trop de programmes mais ducoup les photos qui auraient du s'ouvrirent ne s'ouvriront pas. Enfin bon ca c'est pas grave au pir je trouverai bien un moyen en passant par du shell.

    merci de ton aide, et si jamais un jour il te viens une idée qui pourrait m'aider n'hésite pas.

    luffy

  6. #6
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    tu peux ajouter la détection du nombre de param en scindant en 2 les arguments, comme je te l'ai dis plus haut.... c'est pas trés dur!

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut pb arg
    En fait je ne penses pas que cela puisse marcher, peut-être que je me trompe, mais je pense que mon problème vient du fait que :

    chaques photos (selectionnées avant le click droit->ouvrir...) correspondent au premier (et seul) argument passé a chaques instances qui s'ouvrent. Et ducoup, si je block l'ouverture du 2eme softs, je perds mon 2eme argument et ainsi de suite...

    je sais pas si tu vois se que je veux dire ... ^^ je m'exprime pas très bien.
    Ex: (parce que je pense pas que j'explique bien):

    3 photos selectionnées( photo1.gif, photo2.gif ...):

    instance 1 = ouverture de photo1.gif / photo1.gif unique argument
    instance 2 = ouverture de photo2.gif / photo2.gif unique argument
    instance 3 = ouverture de photo3.gif / photo3.gif unique argument

    Ducoup en fait je galère, ce qu'il faudrait que j'arrive a faire c'est de faire comprendre que toutes les photos sélectionnées correspondent aux arguments d'une seule et même instance

    merci encore de m'aider
    luffy

  8. #8
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    il faut modifier ton prog pour qu'il accepte un nombre non defini d'argument.

    vois du coté de "*arg" et "**kw" ou un truc comme ca!

    a +

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut Resolu
    Ouep j'ai résolu mon probleme, en fait cela ne venait pas du script mais du gestionnaire nautilus. Les arguments etaient envoyé 1 par 1 a différentes instances,
    ==> Solution telecharger Nautilus-action et définir une action spécifique, bloquer au cas ou l'ouverture du programme en double => creation mini serveur sur un port qui se contente d'exister (solution trouvée sur le net).

    merci encore d'avoir repondu
    Mon programme se trouve la si vous voulez voir la solution en détaille :

    http://luffy.luck.free.fr/dokuwiki-r...ewer_in_python
    (Code difficilement lisible sur le wiki : conseil => copier coller ^^)

    luffy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [E-03] Passage Argument Formule Excel
    Par Wildcat dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/12/2008, 17h30
  2. [fonctions imbriquées] Passage argument d'une fonction a l'autre
    Par ricololo dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 06/11/2008, 13h44
  3. Passage argument Formulaire->Etat
    Par dagan dans le forum VBA Access
    Réponses: 10
    Dernier message: 12/12/2007, 13h34
  4. Access passage arguments
    Par benejepo dans le forum IHM
    Réponses: 12
    Dernier message: 10/09/2007, 09h51
  5. Probleme passage argument thread
    Par Leguerinos dans le forum POSIX
    Réponses: 3
    Dernier message: 15/02/2007, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo