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

GUI Python Discussion :

fermer Gtk.FileChooserDialog avant de lancer le traitement [Python 3.X]


Sujet :

GUI Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Par défaut fermer Gtk.FileChooserDialog avant de lancer le traitement
    Bonjour,

    Je suis en python 3.5 et Gtk 3
    Je dois importer un fichier cvs dans une base de données. Mon code fonctionne, sauf que la boite de dialogue pour sélectionner le fichier ne se ferme pas avant que l'import ne commence.
    J'ai pourtant bien le dialog.destroy() avant Import_csv(filename_csv).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    def imp_call_logs_callback(self, action, parameter):
            dialog = Gtk.FileChooserDialog("Choisissez un fichier csv", self,
                Gtk.FileChooserAction.OPEN,
                (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
                 Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
            self.add_filters(dialog)
            response = dialog.run()
            if response == Gtk.ResponseType.OK:
                filename_csv = dialog.get_filename()
                print("fichier CSV : " + filename_csv)
            elif response == Gtk.ResponseType.CANCEL:
                print("sélection annulée")
            dialog.destroy()
            Import_csv(filename_csv)
    Comment fermer la boite de dialogue avant le lancer l'import ?
    Merci pour votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2012
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 321
    Par défaut
    Bonjour,

    Dans votre script, la commande de destruction est juste avant que l'import ne commence. Donc le comportement que vous décrivez est normal. Votre programme attend de sortir de votre test conditionnel, puis détruit la fenêtre de dialogue, puis exécute l'import.

    Par conte, dans ce que vous écrivez, demandez vous ce qui se passe lors d'un clic sur cancel. Vous détruisez la fenêtre et vous tentez d'importer un fichier qui n'a pas été sélectionné...

    Pour que la fenêtre se ferme dès le clic sur un des boutons, vous devez mettre votre destruction de fenêtre juste avant votre test sur le type de réponse

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Par défaut
    Bonjour,

    Je vous remercie pour votre réponse.
    Mais justement, en détruisant la fenêtre, je pensais qu'elle se fermerait et qu'ensuite, l'import se ferait.
    Là, l'import s'exécute alors que la fenêtre reste ouverte. Elle ne se ferme qu'une fois l'import terminé.
    Finalement, j'ai résolu (contourné) le problème en ouvrant une fenêtre supplémentaire, demandant la confirmation de l'import, ce qui fonctionnellement est mieux.

    Concernant le problème du "cancel", je l'avais vu après coup et traité.

    J'ai quand même testé en passant le destroy avant le test mais cela ne change rien au comportement de la fenêtre.

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

Discussions similaires

  1. [SL3] Attendre l'affichage avant de lancer les traitements
    Par lutecefalco dans le forum Silverlight
    Réponses: 2
    Dernier message: 06/05/2010, 10h47
  2. fermer un jpanel automatiquement avant de lancer un jframe
    Par élève_ingénieur dans le forum Composants
    Réponses: 10
    Dernier message: 29/01/2010, 21h07
  3. Comment fermer une Tform avant meme qu'elle s'affiche??
    Par Jayceblaster dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 17/05/2006, 11h34
  4. [Traitement batch]lancer un traitement independant des users
    Par Wessim dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 08/06/2005, 20h43
  5. Réponses: 7
    Dernier message: 24/03/2005, 16h55

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