Pmw.HistoryText() - ...
...
If None, a label component is not created. The default is None.
Otherwise, the size of the megawidget is determined by the width and height of the text component, along with the size and/or existence of the other components, such as the label, the scrollbars and the scrollmargin option. All these affect the overall size of the megawidget. The default is 0.
class Demo:
def __init__(self, parent):
# Create and pack the PanedWidget to hold the query and result
# windows.
# !! panedwidget should automatically size to requested size
panedWidget = Pmw.PanedWidget(parent,
orient = 'vertical',
hull_height = 400,
hull_width = 450)
panedWidget.add('query', min = 0.05, size = 0.2)
panedWidget.add('buttons', min = 0.1, max = 0.1)
panedWidget.add('results', min = 0.05)
panedWidget.pack(fill = 'both', expand = 1)
# Create and pack the HistoryText.
self.historyText = Pmw.HistoryText(panedWidget.pane('query'),
text_wrap = 'none',
text_width = 60,
text_height = 10,
statechangecmd = self.statechange,
)
self.historyText.pack(fill = 'both', expand = 1)
self.historyText.statechangecmd = self.statechange
self.historyText.component('text').focus()
buttonList = (
['Prev', self.historyText.prev],
['Next', self.historyText.next],
['Search', Pmw.busycallback(self.search)],
['Clear', self.clear],
['Undo', self.historyText.undo],
['Redo', self.historyText.redo],
)
self.buttonDict = {}
for text, cmd in buttonList:
button = Tkinter.Button(panedWidget.pane('buttons'),
text = text, command = cmd)
button.pack(side = 'left')
self.buttonDict[text] = button
for text in ('Prev', 'Next'):
self.buttonDict[text].configure(state = 'disabled')
self.results = Pmw.ScrolledText(panedWidget.pane('results'), text_wrap = 'none')
self.results.pack(fill = 'both', expand = 1)
def statechange(self, prevstate, nextstate):
self.buttonDict['Prev'].configure(state = prevstate)
self.buttonDict['Next'].configure(state = nextstate)
def clear(self):
self.historyText.delete('1.0', 'end')
def addnewlines(self, text):
if len(text) == 1:
text = text + '\n'
if text[-1] != '\n':
text = text + '\n'
if text[-2] != '\n':
text = text + '\n'
return text
def search(self):
sql = self.historyText.get()
self.results.insert('end', self.addnewlines(sql))
self.results.see('end')
self.results.update_idletasks()
self.historyText.addhistory()
deleteSemiColon = '[\n;]+$'
results = 'foo'
if len(results) > 0:
self.results.insert('end', self.addnewlines(results))
self.results.see('end')
Home. Pmw 0.8.5 Maintainer gregm@iname.com. 9 Feb 2001