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

GTK+ avec Python Discussion :

Dialog chooser et Glade


Sujet :

GTK+ avec Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Par défaut Dialog chooser et Glade
    Bonjour,

    Alors voilà je développe une très petite application en python gtk et j'utilise Glade pour la création de l'interface graphique.

    Mon application créé un fichier image que j'aimerais bien pouvoir sauver où je veux à l'aide d'un file chooser dialog. Cependant je vois vraiment très peu d'aide concernant PyGtk et Glade, dès lors, je n'ai aucune idée de commencer lancer le file chooser dialog lorsque je clique sur un bouton. De plus, ce dialog doit-il faire partie du fichier glade de l'interface graphique ou est-ce que ça doit être un nouveau fichier...

    Voilà, si quelqu'un pourrait m'éclairer sur mon problème, voire me donner un lien (français de préférence, mais anglais ça va aussi) qui explique comment déployer une application avec glade et python.

    Je vous remercie d'avance et vous souhaîte un bon réveillon

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 96
    Par défaut
    Salut Herlock

    C'est peut-être un peu tardif comme réponse mais la voila quand même

    Tous les dialogues ont une fonction run(). Celles-ci lance le dialogue en premier plan et lui fait prendre la main sur ton application. Je n'ai jamais utilisé de filechooser mais il n'y a pas de raison que ce soit différent.
    De plus, ce dialog doit-il faire partie du fichier glade de l'interface graphique ou est-ce que ça doit être un nouveau fichier...
    Rien ne t'empèche de mettre plusieurs toplevel dans un fichier Glade. Les top level comme tous les autres widget sont référencés par une chaine de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    import gtk.glade
    ...
    dlg = maRefXml("nomDuDialogueDansGlade")       # maRefXml obtenu avec gtk.glade.XML("fichier.glade")
    ...    # connecte ici les signaux du dialogue avec des handlers appropriés
    dlg.run()
    Je suppose qu'on récupère le chemin absolu du fichier avec des handlers appropriés. La référence Gtk la plus complète est celle du langage C (normal, Gtk est écris en C ). Elle pourra sûrement t'aider.

    Voici un lien en français qui pourra peut-être t'aider. tu en trouvera bien d'autre en anglais.

    Par contre j'ai déjà eu des soucis avec des dialogues dans glade car lorsqu'on quitte le dialogue, on detruit sa référence (méthode destroy()). du coup, le rappeler provoque une erreur du style type non-défini. le mieux c'est surement de les créer de toute pièce à chaque fois qu'on en a besoin.

    Rémi

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    Bonjour,

    Je me suis posé la même question : comment créer une autre fenêtre à partir de la fenêtre principale de l'application, et je suis tombé sur un article qui donne un exemple. Certes, j'arrive trop tard, mais peut être cela pourra-t-il aider d'autres personnes ...

    Il existe une traduction de cet article ici

    Dans les grandes lignes :
    1. Créez les deux fenêtres dans glade. Celles-ci devraient apparaître au plus haut niveau hirarchique dans le tree view.

    2. Dans le fichier .py, écrivez ceci :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      # mainWindow est le nom de votre fenêtre principale
      self.wTree = gtk.glade.XML("file.glade", "mainWindow")
      En appelant le fichier .glade de cette manière, seule la fenêtre mainWindow sera affichée.

    3. Toujours dans le fichier .py, créez une nouvelle classe pour gérer la fenêtre de dialogue. Écrivez ces lignes :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      # dlgWindow est le nom de votre fenêtre de dialogue
      self.wTree = gtk.glade.XML("file.glade", "dlgWindow")
       
      # Récupère un pointeur vers la fenêtre
      self.dlg = self.wTree.get_widget("dlgWindow")
       
      # Lance la boucle de la fenêtre de dialogue et attend son résultat
      # (gtk.RESPONSE_OK, etc ...)
      self.result = self.dlg.run()
       
      # Récupérez ici les valeurs des champs de la fenêtre
       
      # Ferme cette fenêtre uniquement
      self.dlg.destroy()


    J'éspère que ce sera utile à quelqu'un

Discussions similaires

  1. File chooser dialog box
    Par Fleur_sauvage dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 28/08/2010, 15h18
  2. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  3. Empecher le curseur de sortir du dialog
    Par Gadjo dans le forum MFC
    Réponses: 5
    Dernier message: 18/11/2002, 18h01
  4. [awt][dialog]
    Par Ultra-FX dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/11/2002, 16h22
  5. Quoi ?! Common Dialog fait crasher DirectDraw ?
    Par Magus (Dave) dans le forum DirectX
    Réponses: 4
    Dernier message: 21/10/2002, 19h01

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