Pmw.MessageBar() - information line for displaying short messages
This class creates a single-line message display area. Messages of several different types may displayed. Messages are cleared after a period defined for each message type. Each message type has a priority so that if the application attempts to display more than one message at a time, the message with the highest priority will be displayed. Messages may be accompanied by a number of audible bells.
If None, a label component is not created. The default is None.
{ 'systemerror' : (5, 10, 2, 1), 'usererror' : (4, 5, 1, 0), 'busy' : (3, 0, 0, 0), 'systemevent' : (2, 5, 0, 0), 'userevent' : (2, 5, 0, 0), 'help' : (1, 5, 0, 0), 'state' : (0, 0, 0, 0), }
message('help', text)
.
class Demo: def __init__(self, parent): # Create and pack the MessageBar. self._messagebar = Pmw.MessageBar(parent, entry_width = 40, entry_relief='groove', labelpos = 'w', label_text = 'Status:') self._messagebar.pack(side = 'bottom', fill = 'x', expand = 1, padx = 10, pady = 10) # Create and pack the ScrolledListBox to change the MessageBar. self.box = Pmw.ScrolledListBox(parent, listbox_selectmode='single', items=('state', 'help', 'userevent', 'systemevent', 'usererror', 'systemerror', 'busy',), label_text='Message type', labelpos='n', selectioncommand=self.selectionCommand) self.box.pack(fill = 'both', expand = 'yes', padx = 10, pady = 10) self._index = 0 self._stateCounter = 0 def selectionCommand(self): sels = self.box.getcurselection() if len(sels) > 0: self._index = self._index + 1 messagetype = sels[0] if messagetype == 'state': self._stateCounter = (self._stateCounter + 1) % 3 text = stateMessages[self._stateCounter] if text != '': text = text + ' (' + messagetype + ')' self._messagebar.message('state', text) else: text = messages[messagetype] text = text + ' (' + messagetype + ')' self._messagebar.message(messagetype, text) if messagetype == 'busy': Pmw.showbusycursor() self.box.after(2000) Pmw.hidebusycursor() self._messagebar.resetmessages('busy') text = 'All files successfully removed' text = text + ' (userevent)' self._messagebar.message('userevent', text) messages = { 'help': 'Save current file', 'userevent': 'Saving file "foo"', 'busy': 'Busy deleting all files from file system ...', 'systemevent': 'File "foo" saved', 'usererror': 'Invalid file name "foo/bar"', 'systemerror': 'Failed to save file: file system full', } stateMessages = { 0: '', 1: 'Database is down', 2: 'Waiting for reply from database', }
Home. Pmw 0.8.5 Maintainer gregm@iname.com. 9 Feb 2001