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] widget text et scrollbar


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [tkinter] widget text et scrollbar
    Bonjour à tous, c'est mon premier post sur ce forum, alors si je fait pas comme il faut hésitez pas !
    Bon j'en vient à mon souci...
    Je suis en train de faire une interface de calculette (on parlera pas de l'algorythme içi) qui contient les éléments suivant:
    1. une "Entry"
    2. un "Text" associé à un "Scrollbar"
    3. et un "Button" pour quitter
    Bon pour le fonctionnement, je tappe mon calcul dans l'"entry", puis j'affiche le résultat dans la zone "Text", mon problème c'est que je ne sasis pas comment placer la "Scrollbar" toujours en bas par défaut, c'est à dire qu'au fur et à mesure que je rentre des calculs, si on commence à dépasser la taille du "Text", la scrollbar déscende toute seule...
    Voila si vous m'avez compris, merci pour les réponses éventuelles

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Regarde ce post:
    http://www.developpez.net/forums/sho...d.php?t=136561
    (c'est une scrollbar avec une liste mais ca devrait marcher pareil ou presque avec un autre widget)

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci pour la réponse, j'ai regarder le sujet, mais rien ne m'indique la marche à suivre pour ce sue je veu faire, je me répète, je voudrai déplacer mon scrollbar à la fin et ainsi avoir la dernière ligne de texte sous les yeux...
    voila mon code pour illustrer:
    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
    56
    57
    58
    59
    60
    61
    62
    from Tkinter import *
    from mes_fonctions import *
     
     
    def evaluer(arg):
        print arg
        global dernierresultat
        if str(entree.get()).find("+")==0 or str(entree.get()).find("-")==0 or str(entree.get()).find("*")==0 or str(entree.get()).find("/")==0:
            chaine="%s%s" %(dernierresultat,str(entree.get()))
        else:
            chaine=str(entree.get())
        if chaine.find("ans")>-1:
            chaine="%s%s%s" %(chaine[0:chaine.find("ans")],dernierresultat,chaine[chaine.find("ans")+3:])
        texte.config(state=NORMAL)
        texte.tag_config("gauche",justify="left")
        texte.tag_config("droite",justify="right")
        texte.insert(END,"%s\n" %(fonction(chaine)),"gauche")
        scroll.set()#je n'arrive pas à régler le set pour aller à la fin
        texte.config(state=DISABLED)
        dernierresultat=str(eval(chaine))
        entree.delete(0, END)
     
    def effacer():
        texte.config(state=NORMAL)
        texte.delete(0.1, END)
        texte.config(state=DISABLED)
     
    def copier():
        texte.config(state=NORMAL)
        chaine=texte.get(CURRENT,END)
        texte.config(state=DISABLED)
        entree.insert(END,chaine)
     
    def ans(arg):
        print arg
        global dernierresultat
        entree.insert(END, dernierresultat)
     
    fen = Tk()
    entree =  Entry(fen)
    entree.pack(side=TOP)
    entree.config(width=90)
    texte =  Text(fen)
    texte.config(width=85)
    scroll=Scrollbar(fen)
    scroll.pack(side=RIGHT, fill=Y)
    scroll.config(command=texte.yview, width=5)
    texte.config(yscrollcommand = scroll.set)
    texte.pack(side=TOP)
    bouton1 = Button(fen, text="Quitter", command=fen.quit)
    bouton1.pack(side=LEFT)
    bouton3 = Button(fen, text="Copier", command=copier)
    bouton3.pack(side=LEFT)
    bouton2 = Button(fen, text="Effacer", command=effacer)
    bouton2.pack(side=LEFT)
    fen.bind('<Return>',evaluer)
    fen.bind('<Up>',ans)
    entree.focus_set()
    global dernierresultat
    global indexresultat
     
    fen.mainloop()
    merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Ce n'est pas sur le scrollbar qu'il faut jouer mais sur le Text
    donc remplacer cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    scroll.set(...)#je n'arrive pas à régler le set pour aller à la fin
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    texte.yview(END)  ## pour aller à la fin du widget texte
    Pour plus de détails, lire la doc ici: http://www.pythonware.com/library/tk...69-methods.htm
    et en particulier là (à priori, on pourrait utiliser la méthode see aussi):
    see(index), yview(index)

    If necessary, scroll the text widget to make sure the text at the given position is visible. The see method scrolls the widget only if the given position isn't visible at all, while yview always scrolls the widget to move the given position to the top of the window.

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

Discussions similaires

  1. Question de TkInter / Widget text.mark_set
    Par Captain'Flam dans le forum Général Python
    Réponses: 7
    Dernier message: 29/04/2014, 13h57
  2. Centrer Widget Text & Coller scrollbar
    Par phoenix420 dans le forum Tkinter
    Réponses: 18
    Dernier message: 30/04/2011, 06h57
  3. Scrollbare avec un widget Text
    Par panthere_noire dans le forum Tkinter
    Réponses: 8
    Dernier message: 26/09/2008, 14h33
  4. colorier une colonne dans un widget text
    Par Chris33 dans le forum Tkinter
    Réponses: 4
    Dernier message: 14/09/2006, 11h20
  5. [Tkinter] widget Text
    Par t_om84 dans le forum Tkinter
    Réponses: 8
    Dernier message: 17/06/2005, 09h30

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