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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Scrollbar dans notebook uniquement si nécéssaire
    Bonjour, dans une fenêtre j'ai un onglet qui contient une scrollbar. Je voudrai que la scrollbar ne soit visible que lorsque le texte déborde.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            # Adds tab 1 of the notebook
            page1 = ttk.Frame(self.nb)
            self.nb.add(page1, text='Texte')
     
            # Add the textbox
            self.tbox1 = Text(page1, bg="grey", wrap=WORD)
            self.tbox1.pack(fill=BOTH, expand=1)
     
    	# Add the Scrollbar
            scrollbar = Scrollbar(self.tbox1)
            scrollbar.pack(side=RIGHT, fill=Y)
    En css, c'est tout simple. Y'a t-il un moyen simple en python permettant de rendre invisible la barre de défilement si le texte est suffisamment court. Merci d'avance de vos réponses.
    Arsène

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Vous pouvez vous inspirez de cette AutoScrollbar.

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

  3. #3
    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
    J'avais vu cet exemple mais j'avais pas su l'adapter. Et pour le moment je sais toujours pas. Je cherche à faire des choses assez basiques pour débuter.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    J'avais vu cet exemple mais j'avais pas su l'adapter. Et pour le moment je sais toujours pas. Je cherche à faire des choses assez basiques pour débuter.
    Et il faut commencer par mettre une/des Scrollbar associé à un Text widget dans une Frame. Pour çà vous pouvez déjà vous inspirer des scrollbar patterns, puis ajouter la fonctionnalité d'autohide.

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

  5. #5
    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. Je venais de me rendre compte justement que la scrollbar que j'avais insérée n'était pas liée au texte. J'ai donc complété mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # Add the scrollbar
    scrollbar = Scrollbar(self.tbox1)
    scrollbar.pack(side=RIGHT, fill=Y)
    self.tbox1.pack()
    # attach self.tbox1 to scrollbar
    self.tbox1.config(yscrollcommand=scrollbar.set)
    scrollbar.config(command=self.tbox1.yview)
    Lorsque y'a pas assez de texte la scrollbar apparaît grisée sans curseur. C'est là que je voudrais la masquer. Et je constate en plus qu'elle empiète sur le texte. Il faudrait que je mette une marge pour résoudre ce problème.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    A partir des exemples, j'écrirai cela ainsi:

    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
    from tkinter import *
     
    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")
     
     
     
    root = Tk()
    frame = Frame(root, bd=2, relief=SUNKEN)
     
    ## frame.grid_rowconfigure(0, weight=1)
    ## frame.grid_columnconfigure(0, weight=1)
     
    ## xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
    ## xscrollbar.grid(row=1, column=0, sticky=E+W)
     
    yscrollbar = AutoScrollbar(frame)
    yscrollbar.grid(row=0, column=1, sticky=N+S)
     
    text = Text(frame, #wrap=NONE, bd=0,
                ## xscrollcommand=xscrollbar.set,
                yscrollcommand=yscrollbar.set,)
     
    text.grid(row=0, column=0, sticky=N+S+E+W)
     
    ## xscrollbar.config(command=text.xview)
    yscrollbar.config(command=text.yview)
     
    frame.pack()
     
    mainloop()
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

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, 09h18
  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, 15h18
  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, 15h25
  4. deplacer scrollbar dans calque
    Par prodi_64 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/12/2004, 12h18
  5. [VB.NET] Disparition scrollBar dans une DataGrid
    Par aphykite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2004, 10h29

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