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

Python Discussion :

Scrollbar dans notebook uniquement si nécéssaire


Sujet :

Python

  1. #21
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Merci beaucoup pour ce code qui va m'aider je crois à trouver la solution. J'ai perdu un peu de temps avec à cause de la barre oblique de : text insert.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text.insert ('end', (' 123456789' * 8) + '\n')
    Pour que ça marche il faut la mettre dans l'autre sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text.insert ('end', (' 123456789' * 8) + '/n')

  2. #22
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    Pour que ça marche il faut la mettre dans l'autre sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text.insert ('end', (' 123456789' * 8) + '/n')
    Il y a une différence entre "çà marche" et "çà ne fait pas ce que vous voulez".
    '\n' crée une nouvelle ligne... Et mon propos était de visualiser les 80 colonnes x 24 lignes d'un widget Text "par défaut". Sûr que si on lui donne plus de place, çà ne va pas changer la longueur des lignes pour "remplir" l'espace supplémentaire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #23
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Oui, en fait je m'étais même trompé. Y'a pas besoin de rajouté "/n" si l'on veut que le texte s'étire sur toute la largeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text.insert ('end', (' 123456789' * 8)) # c'est suffisant
    Ceci dit, j'ai fini par trouvé la solution à mon problème de départ grâce à vos orientations. Merci beaucoup.

    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
    from tkinter import *
    from PIL import Image, ImageTk
    from tkinter import filedialog, ttk
    class AutoScrollbar(Scrollbar):
        # a scrollbar that hides itself if it's not needed.  only
        # works if you use the grid geometry manager.
        def set(self, lo, hi):
            if float(lo) <= 0.0 and float(hi) >= 1.0:
                self.grid_remove()
            else:
                self.grid()
            Scrollbar.set(self, lo, hi)
        def pack(self, **kw):
            raise TclError ("cannot use pack with this widget")
        def place(self, **kw):
            raise TclError ("cannot use place with this widget") 
     
    def create_frame(master):
        frame = Frame(master, bd=2, relief=SUNKEN)
        yscrollbar = AutoScrollbar(frame)
        yscrollbar.grid(row=0, column=1, sticky=N+S)
        text = Text(frame, 
                    yscrollcommand=yscrollbar.set)
     
        text.grid(row=0, column=0, sticky='nwse') # expansion du widget Text
     
        frame.grid_columnconfigure(0, weight=1) # expansion de la colonne
        frame.grid_rowconfigure(0, weight=1) # expansion de la colonne    
     
        return frame
     
    if __name__ == '__main__':
        root = Tk()
     
        root.title("MonkeyCode Editor")
     
        nb = ttk.Notebook(root)
     
        root.update()  
     
        frame1 = create_frame(nb)
        nb.add(frame1, text='text')
     
        frame2 = create_frame(nb)
        nb.add(frame2, text='Text2')
     
        frame3 = create_frame(nb)
        nb.add(frame3, text='Text3')
     
        frame4 = create_frame(nb)
        nb.add(frame4, text='Text4') 
     
        nb.pack(expand=YES, fill=BOTH)
     
        mainloop()

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [css] scrollbar dans un div
    Par tooms2028 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 17/06/2007, 10h18
  2. Position d'une ScrollBar dans un TRichEdit (ou TMemo)
    Par Troll dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/02/2005, 16h18
  3. Position de la scrollbar dans un div
    Par VolVic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2005, 16h25
  4. deplacer scrollbar dans calque
    Par prodi_64 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/12/2004, 13h18
  5. [VB.NET] Disparition scrollBar dans une DataGrid
    Par aphykite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2004, 11h29

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