Bonjour,

Je suis en train d'écrire un programme pour mon boulot.
J'ai déjà créé un Frame contenant de nombreux labels et entrées.
Je souhaiterais associer à ce Frame une scrollbar de façon à ce que l'utilisateur, puisse voir tout le frame.
Comment associer une scrollbar à mon Frame.
Voici le code source (sans les essais infructueux de scollbar).
Je souhaite rester sur Tkinter sans passer par Pmw.
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 
# -*- coding: utf-8 -*-
from Tkinter import *
import Pmw
 
class Services(Frame):
    def __init__(self,parent):
        Frame.__init__(self)
        self.a,self.b,self.c,self.d,self.entr=1,12,1,12,[0]*18
 
 
        # Attributs du Frame
 
 
        fr.columnconfigure(0,minsize=140)
        fr.columnconfigure(1,minsize=140)
        fr.columnconfigure(2,minsize=140)
        fr.columnconfigure(3,minsize=175)
 
        # C'est parti pour le remplissage...
        # Entête
        self.espace(0,0,4)
        Label(fr,text='REPARTITION DES SERVICES').grid(columnspan=4)
        self.espace(2,0,4)
        self.creeLabel('Classes',5,0)
        self.entr_effectif=Entry(fr,width=40)
        self.entr_effectif.grid(row=5,column=1,columnspan=2)
        self.creeLabel('Semaine',6,0)
        self.entr_semaine=Entry(fr,width=40)
        self.entr_semaine.grid(row=6,column=1,columnspan=2)
        self.espace(7,0,4)
        self.creeLabel('Responsable de semaine',8,1)
        self.entr_responsable=Entry(fr,width=20)
        self.entr_responsable.grid(row=8,column=2)
        self.espace(9,0,4)
 
 
        # Chambres + couloir
        Label(fr,text='CHAMBRES',width=40,
              bg='navy',fg='white').grid(columnspan=2)
        self.espace(11,0,4)
        while self.a<18:     # Noms des chambres
            self.creeLabel('Chambre %s'%(self.a),self.b,0)
            self.a+=1
            self.b+=1
        while self.c<18:               # Création des entrées
            self.entr[self.c]=Entry(fr,width=20)
            self.entr[self.c].grid(column=1,row=self.d)
            self.c+=1
            self.d+=1
        self.entr[7].configure(bg='black') # Coloration de la chambre du pion
        self.espace(29,0,2)
        Label(fr,text='Couloir chambres +\nWC + local à balais').grid(row=30,
                                                                 column=0,
                                                                 rowspan=2)
        self.entr_couloir=Text(fr,width=20,height=2,bd=1,relief=SOLID)
        self.entr_couloir.grid(row=30,column=1,rowspan=2)
        self.espace(32,0,2)
 
        # Réfectoire
        Label(fr,text='RESTAURATION',width=45,
              bg='navy',fg='white').grid(row=10,column=2,columnspan=2)
        self.creeLabel('Salle à manger Lu, Me, Ve',13,2)
        self.creeLabel('Vaisselle Lu, Me, Ve',16,2)
        self.creeLabel('Salle à manger Ma, Je',19,2)
        self.creeLabel('Vaisselle Ma, Je',22,2)
        self.entr_refectoire1=Text(fr,width=25,height=3,
                                   bd=1,relief=SOLID)
        self.entr_refectoire1.grid(row=12,column=3,rowspan=3)
        self.entr_vaisselle1=Text(fr,width=25,height=3,
                                   bd=1,relief=SOLID)
        self.entr_vaisselle1.grid(row=15,column=3,rowspan=3)
        self.entr_refectoire2=Text(fr,width=25,height=3,
                                   bd=1,relief=SOLID)
        self.entr_refectoire2.grid(row=18,column=3,rowspan=3)
        self.entr_vaisselle2=Text(fr,width=25,height=3,
                                   bd=1,relief=SOLID)
        self.entr_vaisselle2.grid(row=21,column=3,rowspan=3)
 
        # Sous-sol
        Label(fr,text='SOUS-SOL',bg='navy',
              fg='white',width=40).grid(row=33,column=0,columnspan=2)
        self.espace(34,0,2)
        Label(fr,text='escalier + couloir +\nlocal à balais').grid(row=35,
                                                                   column=0,
                                                                   rowspan=2)
 
 
 
 
 
 
    def espace(self,row,column,columnspan):
            Label(fr,text="").grid(row=row,column=column,
                                     columnspan=columnspan)
 
 
    def creeLabel(self,txt,row,column):
            Label(fr,text=txt).grid(row=row,column=column,sticky=E)
 
 
if __name__=='__main__':
 
    fr=Frame()
    fr.pack()
    Services(fr).mainloop()