1 # A ScrolledText widget feels like a text widget but also has a
2 # vertical scroll bar on its right. (Later, options may be added to
3 # add a horizontal bar as well, to make the bars disappear
4 # automatically when not needed, to move them to the other side of the
7 # Configuration options are passed to the Text widget.
8 # A Frame widget is inserted between the master and the text, to hold
9 # the Scrollbar widget.
10 # Most methods calls are inherited from the Text widget; Pack methods
11 # are redirected to the Frame widget however.
14 from Tkinter
import _cnfmerge
16 class ScrolledText(Text
):
17 def __init__(self
, master
=None, cnf
={}, **kw
):
19 cnf
= _cnfmerge((cnf
, kw
))
22 if type(k
) == ClassType
or k
== 'name':
25 self
.frame
= apply(Frame
, (master
,), fcnf
)
26 self
.vbar
= Scrollbar(self
.frame
, name
='vbar')
27 self
.vbar
.pack(side
=RIGHT
, fill
=Y
)
29 apply(Text
.__init
__, (self
, self
.frame
), cnf
)
30 self
.pack(side
=LEFT
, fill
=BOTH
, expand
=1)
31 self
['yscrollcommand'] = self
.vbar
.set
32 self
.vbar
['command'] = self
.yview
34 # Copy Pack methods of self.frame -- hack!
35 for m
in Pack
.__dict
__.keys():
36 if m
[0] != '_' and m
!= 'config' and m
!= 'configure':
37 setattr(self
, m
, getattr(self
.frame
, m
))