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 :

Tkinter : saisir dans la frame de gauche et affichage dans la frame de droite


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 246
    Points : 342
    Points
    342
    Par défaut Tkinter : saisir dans la frame de gauche et affichage dans la frame de droite
    Bonjour

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    #!/usr/bin/env python
    import sys, re, string
    from Tkinter import *
    from ScrolledText import ScrolledText
     
    class Cadre_gauche():
        def __init__(self):
            frame1 =  Frame(root, bg="green", width=300, height=300, padx=10, pady=10)
            frame1.pack(side=RIGHT,fill=Y)
            self.choix1 = Radiobutton(frame1, text='Dos vers Unix', variable=texte, value='Dos vers Unix',command=self.selection)
            self.choix2 = Radiobutton(frame1, text='Unix vers Dos', variable=texte, value='Unix vers Dos',command=self.selection)
            self.choix1.pack()
            self.choix2.pack()
            self.btnchoixrep = Button(frame1, text='Ouvrir', command = self.choixrep) # boutton choix path
            self.btnchoixrep.pack()
     
     
        def selection(self):
            global choix
            choix = texte.get()
     
        def choixrep(self):
            global Rep_courant
            Rep_courant = tkFileDialog.askdirectory(initialdir="/",title='Choisissez un repertoire')
            print Rep_courant
            Affiche_chemin.set(Rep_courant)
     
     
    class Cadre_droite():
        def __init__(self):
            framedroite =  Frame(root, bg="white", width=300, height=300, padx=10, pady=10)
            framedroite.pack(side=LEFT,fill=Y)
            self.txt=Text(framedroite,fg="green",bg="black",width=20,height=50)
            self.txt.pack()
            self.zone_text("toto")
     
        def zone_text(self,msg):
            self.txt.insert(END,msg)
     
     
    class Application:
    	def __init__(self):
    		root.title('Py Dos < == > Unix converter')
     
    	def Go(self):
    	    self.cadre_gauche = Cadre_gauche()
    	    self.cadre_droite = Cadre_droite()
            root.mainloop()
     
     
    root = Tk()
     
    if __name__ == '__main__':
    	app = Application()
    	app.Go()

    je voudrais lorsque je fais mon choix dans la checkbox, le message associé est affiché dans la frame de droite avec la méthode "zone_text"

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Il y a pas mal d'erreur dans ton code. Je pense que tu n'es pas encore bien habitué à la programmation objet.
    Surtout n'utilise de variable globale dans une classe, on est pas loin de la barbarie .
    Si tu veux communiquer entre classe il faut passer ce que tu as besoin en argument.
    j'ai essayé de corriger sans trop modifier ton 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    #!/usr/bin/env python
    import sys, re, string
    from Tkinter import *
    import tkFileDialog
     
     
    class Cadre_droite():
        def __init__(self, root, zone_text):
            frame1 =  Frame(root, bg="green", width=300, height=300, padx=10, pady=10)
            frame1.pack(side=RIGHT,fill=Y)
            self.zone_text = zone_text
            self.texte = StringVar()
            self.choix1 = Radiobutton(frame1, text='Dos vers Unix', variable=self.texte, value='Dos vers Unix\n', command=self.selection)
            self.choix2 = Radiobutton(frame1, text='Unix vers Dos', variable=self.texte, value='Unix vers Dos\n', command=self.selection)
            self.choix1.pack()
            self.choix2.pack()
            self.btnchoixrep = Button(frame1, text='Ouvrir', command = self.choixrep) # boutton choix path
            self.btnchoixrep.pack()
     
     
        def selection(self):
            self.zone_text(self.texte.get())
     
        def choixrep(self):
            self.rep_courant = tkFileDialog.askdirectory(initialdir="/",title='Choisissez un repertoire')
            print self.rep_courant
            #Affiche_chemin.set(Rep_courant)
     
     
    class Cadre_gauche():
        def __init__(self, root):
            framedroite =  Frame(root, bg="white", width=300, height=300, padx=10, pady=10)
            framedroite.pack(side=LEFT,fill=Y)
            self.txt=Text(framedroite,fg="green",bg="black",width=20,height=50)
            self.txt.pack()
     
        def zone_text(self,msg):
            self.txt.insert(END,msg)
     
     
    class Application:
        def __init__(self):
            self.root = Tk()
            self.root.title('Py Dos < == > Unix converter')
     
        def Go(self):
            cadre_gauche = Cadre_gauche(self.root)
            cadre_droite = Cadre_droite(self.root, cadre_gauche.zone_text)
            self.root.mainloop()
     
    if __name__ == '__main__':
    	app = Application()
    	app.Go()

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 246
    Points : 342
    Points
    342
    Par défaut
    Il y a pas mal d'erreur dans ton code. Je pense que tu n'es pas encore bien habitué à la programmation objet.
    Surtout n'utilise de variable globale dans une classe, on est pas loin de la barbarie .
    effectivement, je suis un pur codeur en C. Je n'arrive pas a pense objet ...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/05/2009, 12h38
  2. affichage dans une pseudo frame
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2007, 16h06
  3. Affichage dans le main frame
    Par sensaya dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 08/02/2007, 22h41
  4. Réponses: 2
    Dernier message: 18/12/2005, 19h02
  5. PB avec multi frames - comment faire une multiframe dans URL
    Par guillaumeIOB dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/11/2005, 14h34

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