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 :

le Scrollbar vit sa vie


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Par défaut le Scrollbar vit sa vie
    Bonsoir,
    j'ai du mal à comprendre pourquoi le scrollbar n'est pas positionné à droite de ma listbox... Comment faire ?
    Merci d'avance
    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
    #!usr/bin/python
    # -*- coding: utf-8 -*-
     
    import tkinter as Tk
    import time
    root = Tk.Tk()
    root.geometry('1500x400')
     
    def voirFlux():
        nbRec = 0
        for line in open("ficFlux.txt",'r'):             # compte le nombre d'enregistrements
            nbRec += 1
     
        listFlux = Tk.Listbox(root, width = 140)         # creer listFlux comme liste devant apparaitre dans root
        yScroll = Tk.Scrollbar(root)                    # creer yscroll comme scrollbar dans root
        yScroll.config(command = listFlux.yview)        # declare yscroll comme scrollbar verticale de listFlux
        listFlux.config(yscrollcommand = yScroll.set)    # configure listFlux comme ayant yscroll comme SBV
        ficTamp = open("ficFlux.txt",'r')
        cp1 = 0    
        while cp1 < nbRec:
            listFlux.insert(cp1, str(ficTamp.readline().strip('\n')))
            cp1 += 1
        listFlux.grid(row = 3, column = 0, columnspan = 8)
        yScroll.grid(row = 3, column = 6)
        return()
     
    butVoirFlux = Tk.Button(root, text = ' Voir les flux detailles ', command = voirFlux, width = 25)
    butVoirFlux.grid(row = 1, column = 0)
     
    root.mainloop()
    ficTamp.close()

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Par défaut
    Je simplifie le code, mais le problème reste le même...
    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
    #!usr/bin/python
    # -*- coding: utf-8 -*-
     
    import tkinter as Tk
    root = Tk.Tk()
    root.geometry('1500x400')
     
    def voirFlux():
        listFlux = Tk.Listbox(root, width = 140)         # creer listFlux comme liste devant apparaitre dans root
        yScroll = Tk.Scrollbar(root)                    # creer yscroll comme scrollbar dans root
     
        for i in range(20): 
            listFlux.insert(i,str(i))
     
        yScroll.config(command = listFlux.yview)        # declare yscroll comme scrollbar verticale de listFlux
        listFlux.config(yscrollcommand = yScroll.set)    # configure listFlux comme ayant yscroll comme SBV
     
        listFlux.grid(row = 3, column = 0, columnspan = 8)
        yScroll.grid(row = 3, column = 6)
        return()
     
    butVoirFlux = Tk.Button(root, text = ' Voir les flux detailles ', command = voirFlux, width = 25)
    butVoirFlux.grid(row = 1, column = 0)
     
    root.mainloop()

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,
    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
     
    #!usr/bin/python
    # -*- coding: utf-8 -*-
    #
    #
    import tkinter as Tk
     
    def voirFlux():
        listFlux = Tk.Listbox(root, width=140)
        yScroll = Tk.Scrollbar(root)
        for i in range(20): 
            listFlux.insert(i, str(i))
        yScroll.config(command = listFlux.yview)
        listFlux.config(yscrollcommand = yScroll.set)
        listFlux.grid(row = 3, column = 0, columnspan = 8) # columnspan = 8
        yScroll.grid(row = 3, column = 8, sticky=Tk.N+Tk.S) # Donc column = 8. Et sticky pour la dimention du Widget.
     
    root = Tk.Tk()
    root.geometry('1500x400')
    Tk.Button(root, text = ' Voir les flux detailles ', command = voirFlux, width = 25).grid(row = 1, column = 0)
    root.mainloop()
    Bon code

  4. #4
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2010
    Messages : 83
    Par défaut
    J'ai toujours un peu de blanc qui dépasse à droite mais le columnspan=8 semble dire que c'est volontaire donc je n'y ai pas touché, bien que ça me semble étrange, mais ta scrollbar est à droite et étendue de haut en bas :
    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
    #!usr/bin/python
    # -*- coding: utf-8 -*-
     
    import tkinter as Tk
    root = Tk.Tk()
    root.geometry('1500x400')
     
    def voirFlux():
        listFlux = Tk.Listbox(root, width = 140)         # creer listFlux comme liste devant apparaitre dans root
        yScroll = Tk.Scrollbar(root)                    # creer yscroll comme scrollbar dans root
     
        for i in range(20): 
            listFlux.insert(i,str(i))
     
        yScroll.config(command = listFlux.yview)        # declare yscroll comme scrollbar verticale de listFlux
        listFlux.config(yscrollcommand = yScroll.set)    # configure listFlux comme ayant yscroll comme SBV
     
        listFlux.grid(row = 3, column = 0, columnspan = 8)
        yScroll.grid(row = 3, column = 6, sticky='nse')
        return()
     
    butVoirFlux = Tk.Button(root, text = ' Voir les flux detailles ', command = voirFlux, width = 25)
    butVoirFlux.grid(row = 1, column = 0)
     
    root.mainloop()
    (testé sur Python 2.6 sous Ubuntu, mais je ne pense pas que ça change qqch)

    La bande blanche est due au columnspan=8 pour le Listbox. Il faut mettre column=8 ou 9 dans le grid de la scrollbar pour la retirer.

    Et mettre grid(column=0) pour l'un et grid(column=6) pour l'autre revient à faire 0 pour le premier et 1 pour le second, donc ça n'a pas d'influence sur le positionnement.

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    A vrais dire je pense que le columnspan c'est pour le Button.
    Donc :
    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
    #!usr/bin/python
    # -*- coding: utf-8 -*-
    #
    #
    import tkinter as Tk
    
    def voirFlux():
        listFlux = Tk.Listbox(root, width=140)
        yScroll = Tk.Scrollbar(root)
        for i in range(20): 
            listFlux.insert(i, str(i))
        yScroll.config(command=listFlux.yview)
        listFlux.config(yscrollcommand=yScroll.set)
        listFlux.grid(row=1, column=0)
        yScroll.grid(row=1, column=1, sticky=Tk.N+Tk.S)
    
    root = Tk.Tk()
    root.geometry('1500x400')
    Tk.Button(root, text='Voir les flux detailles', command=voirFlux, width=25).grid(row=0, column=0, sticky=Tk.W)
    root.mainloop()

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Par défaut
    Merci à vous, affaire résolue, ça marche comme je le voulais...
    a+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Par défaut
    oupsss ! je n'avais pas lu la dernière réponse de PauseKawa.
    En réalité, il y a plusieurs boutons au dessus, si je ne mets pas le columnspan en arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        listFlux.grid(row = 3, column = 0, columnspan = 7)
        yScroll.grid(row = 3, column = 6, sticky=Tk.N+Tk.S)
        return()
    les boutons, à partir du deuxième, seront décalés vers la droite.
    cdlt

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

Discussions similaires

  1. VB.NET vs C# vs Java ou existe-t-il une vie après Visual Basic 6 ?
    Par B-Pascal dans le forum Débats sur le développement - Le Best Of
    Réponses: 32
    Dernier message: 05/07/2007, 12h46
  2. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  3. [VB6] [Scrollbar] Valeur maximale supérieure à 32750
    Par néo333 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/12/2002, 10h24
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [visuel]ScrollBar et StatusBar
    Par psl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/08/2002, 21h28

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