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 :

Affichage d'un texte dans une fenetre


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant en propriété intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant en propriété intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Points : 64
    Points
    64
    Par défaut Affichage d'un texte dans une fenetre
    Voila, j'ai commencer une interface graphique, je rencontre un problème lors de l'affichage d'un fichier texte dans une fenetre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import Tkinter as Tk
    import tkFileDialog
     
    def chfichier(bla):
        root = Tk.Tk()
        file = tkFileDialog.askopenfile(parent=root,mode='rb',title='Choisissez un fichier')
        if file != None:
            data = file.read()
            c  =  Tk.Canvas(root,width=800,height=600,bg="White")
            c.create_text(0,0, data)
            c.pack()
            file.close()
        root.mainloop()
    appelé lors d'un clic dans le menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    menu1 = Tk.Menu(root)
     
    fichier = Tk.Menu(menu1, tearoff=0)
    menu1.add_cascade(label="Fichier",menu=fichier)
     
    fichier.add_command(label="Ouvrir Corpus", command=lambda  : chfichier('Ouvrir corpus'))
    fichier.add_command(label="Quit", command=root.quit)
     
    root.config(menu=menu1)
     
    root.mainloop()
    En fait ca m'affiche ca dans la console et non dans la fenetre ....

  2. #2
    Membre du Club
    Homme Profil pro
    Consultant en propriété intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant en propriété intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Points : 64
    Points
    64
    Par défaut
    Finalement j'ai utiliser une autre methode ... ^^

    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
     
    def action(event=None):
        index = st.tag_nextrange('cible', '0.0', END)
        st.see(index[0])   
     
    def chfichier(bla):
        fen = Pmw.initialise()
        st = Pmw.ScrolledText(fen, labelpos = Tk.N, label_text ="Corpus", label_font ='Times 14 bold italic', label_fg = 'navy', label_pady =5, text_font='Helvetica 11 normal', text_bg ='ivory', text_padx =10, text_pady =10, text_wrap ='none', borderframe =1, borderframe_borderwidth =3, borderframe_relief =Tk.SOLID, usehullsize =1, hull_width =370, hull_height =240)
        st.pack(expand =Tk.YES, fill =Tk.BOTH, padx =8, pady =8)   
        st.tag_configure('titre', foreground ='brown', font ='Helvetica 11 bold italic')
        st.tag_configure('lien', foreground ='blue', font ='Helvetica 11 bold')
        st.tag_configure('cible', foreground ='forest green', font ='Times 11 bold')
        st.tag_bind('lien', '<Button-1>', action)
        titre = """corpus"""
        fichier = tkFileDialog.askopenfile(parent=fen,mode='r',title='Choisissez un fichier')
        st.importfile(fichier)
        st.insert('0.0', titre, 'titre')
        fen.mainloop()
    Ca marche si je specifie le nom du fichier directement
    st.importfile('blabla.txt')

    Mais pas dans le cas :
    fichier = tkFileDialog.askopenfile(parent=fen,mode='r',title='Choisissez un fichier')
    st.importfile(fichier)

    Et ca me retourne cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
        return self.func(*args)
      File "C:\Users\Matthieu\Desktop\Programme.py", line 46, in <lambda>
        fichier.add_command(label="Ouvrir Corpus", command=lambda  : chfichier('Ouvrir corpus'))
      File "C:\Users\Matthieu\Desktop\Programme.py", line 20, in chfichier
        st.importfile(fichier)
      File "C:\Python25\lib\Pmw\Pmw_1_3\lib\PmwScrolledText.py", line 162, in importfile
        file = open(fileName, 'r')
    TypeError: coercing to Unicode: need string or buffer, file found

Discussions similaires

  1. Faire varier du texte dans une fenêtre
    Par Kayzo dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 26/04/2007, 10h44
  2. Affichage d'un fichier texte dans une fenetre
    Par schwinny dans le forum Access
    Réponses: 3
    Dernier message: 11/08/2006, 08h53
  3. Affichage différent selon texte dans une case
    Par pingoo78 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 16h32
  4. Modification d'un texte dans une fenetre "d'erreur"
    Par PAUL87 dans le forum Access
    Réponses: 8
    Dernier message: 21/10/2005, 13h12
  5. effacer du texte dans une fenetre
    Par exter666 dans le forum Windows
    Réponses: 5
    Dernier message: 08/03/2005, 11h25

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