Pmw ScrolledText Widget
Andrew Wheatley
awheat at imaging.robarts.ca
Thu Sep 4 15:34:04 EDT 2003
In the text component, I use the insert method to insert a line of
text.
Initially, I set the foreground colour of the text component to
yellow, that is,
all text is yellow. What I'd like to do is have different strings
have different coloured text. You can't change the foreground color
of the text component without changing all the strings to the same
colour. Anyone know how to have
different strings have different colours?
Here's a code snippet:
# One time creation of the widget
def AddMessageBox (self,parent):
self._messageBox = Pmw.ScrolledText(parent,
hull_width = 850,
hull_height = 100,
usehullsize=1)
self._messageBox.grid(row=0,column=0)
# Background is black, text color is yellow
self._messageBox.component('text').configure(background='black')
self._messageBox.component('text').configure(foreground='yellow')
# Create a filename
self._logfile = "Vcalc_Session_Log_"
timestring = time.strftime("%d_%b_%Y_%H_%M_%S",time.localtime())
self._logfile = "%s%s" % (self._logfile,timestring)
# First line in the message box is yellow
self._messageBox.insert('end','1: Log file is %s\n' %
(self._logfile,))
self._messageBoxLineCount = 2
# Whenever this method is called in appends a string into the text
widget
# of the ScrolledText widget. The 3rd parameter 'color' is supposed
to
# set the color of the string without changing all the previous
strings
# but I don't know how to do it yet.
def LogMessage(self,string,color):
output = '%d: %s' % (self._messageBoxLineCount,string,)
self._messageBox.insert('end',output)
self._messageBoxLineCount = self._messageBoxLineCount + 1
--------------------
Thanks,
Andrew Wheatley
More information about the Python-list
mailing list