4 class ScrolledField(Pmw.MegaWidget):
5 def __init__(self, parent = None, **kw):
7 # Define the megawidget options.
10 ('labelmargin', 0, INITOPT),
11 ('labelpos', None, INITOPT),
12 ('sticky', 'ew', INITOPT),
13 ('text', '', self._text),
15 self.defineoptions(kw, optiondefs)
17 # Initialise the base class (after defining the options).
18 Pmw.MegaWidget.__init__(self, parent)
20 # Create the components.
21 interior = self.interior()
22 self._scrolledFieldEntry = self.createcomponent('entry',
24 Tkinter.Entry, (interior,))
26 # Can't always use 'disabled', since this greys out text in Tk 8.4.2
28 self._scrolledFieldEntry.configure(state = 'readonly')
29 except Tkinter.TclError:
30 self._scrolledFieldEntry.configure(state = 'disabled')
32 self._scrolledFieldEntry.grid(column=2, row=2, sticky=self['sticky'])
33 interior.grid_columnconfigure(2, weight=1)
34 interior.grid_rowconfigure(2, weight=1)
36 self.createlabel(interior)
38 # Check keywords and initialise options.
39 self.initialiseoptions()
43 self._scrolledFieldEntry.configure(state = 'normal')
44 self._scrolledFieldEntry.delete(0, 'end')
45 self._scrolledFieldEntry.insert('end', text)
47 # Can't always use 'disabled', since this greys out text in Tk 8.4.2
49 self._scrolledFieldEntry.configure(state = 'readonly')
50 except Tkinter.TclError:
51 self._scrolledFieldEntry.configure(state = 'disabled')
53 Pmw.forwardmethods(ScrolledField, Tkinter.Entry, '_scrolledFieldEntry')