from Tkinter import *
import Pmw
import sys
class MenuBarDemo( Frame ):
def __init__( self ):
Frame.__init__( self )
Pmw.initialise()
self.pack( expand = YES, fill = BOTH )
self.master.title( "MenuBar Demo" )
self.master.geometry( "500x200" )
self.myBalloon = Pmw.Balloon( self )
self.choices = Pmw.MenuBar( self, balloon = self.myBalloon )
self.choices.pack( fill = X )
self.choices.addmenu( "File", "Exit" )
self.choices.addmenuitem( "File", "command", command = self.closeDemo, label = "Exit" )
self.choices.addmenu( "Format", "Change font/color" )
self.choices.addcascademenu( "Format", "Color" )
self.choices.addmenuitem( "Format", "separator" )
self.choices.addcascademenu( "Format", "Font" )
colors = [ "Black", "Blue", "Red", "Green" ]
self.selectedColor = StringVar()
self.selectedColor.set( colors[ 0 ] )
for item in colors:
self.choices.addmenuitem( "Color", "radiobutton",
label = item, command = self.changeColor,
variable = self.selectedColor )
fonts = [ "Times", "Courier", "Helvetica" ]
self.selectedFont = StringVar()
self.selectedFont.set( fonts [ 0 ] )
for item in fonts:
self.choices.addmenuitem( "Font", "radiobutton",
label = item, command = self.changeFont,
variable = self.selectedFont )
self.choices.addmenuitem( "Font", "separator" )
self.boldOn = BooleanVar()
self.choices.addmenuitem( "Font", "checkbutton",label = "Bold", command = self.changeFont,variable = self.boldOn )
self.italicOn = BooleanVar()
self.choices.addmenuitem( "Font", "checkbutton",
label = "Italic", command = self.changeFont,
variable = self.italicOn )
self.display = Canvas( self, bg = "white" )
self.display.pack( expand = YES, fill = BOTH )
self.sampleText = self.display.create_text( 250, 100,text = "Sample Text", font = "Times 48" )
def changeColor( self ):
self.display.itemconfig( self.sampleText,fill = self.selectedColor.get() )
def changeFont( self ):
newFont = self.selectedFont.get() + " 48"
if self.boldOn.get():
newFont += " bold"
if self.italicOn.get():
newFont += " italic"
self.display.itemconfig( self.sampleText, font = newFont )
def closeDemo( self ):
sys.exit()
MenuBarDemo().mainloop()