two radio groups.py :  » Mobile » Python-for-PalmOS » Python-1.5.2+reduced-1.0 » Demo » tkinter » matt » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Mobile » Python for PalmOS 
Python for PalmOS » Python 1.5.2 reduced 1.0 » Demo » tkinter » matt » two-radio-groups.py
from Tkinter import *

#  The way to think about this is that each radio button menu
#  controls a different variable -- clicking on one of the
#  mutually exclusive choices in a radiobutton assigns some value
#  to an application variable you provide. When you define a
#  radiobutton menu choice, you have the option of specifying the
#  name of a varaible and value to assign to that variable when
#  that choice is selected. This clever mechanism relieves you,
#  the programmer, from having to write a dumb callback that
#  probably wouldn't have done anything more than an assignment
#  anyway. The Tkinter options for this follow their Tk
#  counterparts: 
#  {"variable" : my_flavor_variable, "value" : "strawberry"}
#       where my_flavor_variable is an instance of one of the
#       subclasses of Variable, provided in Tkinter.py (there is
#  StringVar(), IntVar(), DoubleVar() and BooleanVar() to choose
#  from) 



def makePoliticalParties(var):
    # make menu button 
    Radiobutton_button = Menubutton(mBar, text='Political Party', 
            underline=0)
    Radiobutton_button.pack(side=LEFT, padx='2m')
    
    # the primary pulldown
    Radiobutton_button.menu = Menu(Radiobutton_button)

    Radiobutton_button.menu.add_radiobutton(label='Republican', 
              variable=var, value=1)

    Radiobutton_button.menu.add('radiobutton', {'label': 'Democrat', 
            'variable' : var, 
            'value' : 2})

    Radiobutton_button.menu.add('radiobutton', {'label': 'Libertarian', 
            'variable' : var, 
            'value' : 3})
    
    var.set(2)

    # set up a pointer from the file menubutton back to the file menu
    Radiobutton_button['menu'] = Radiobutton_button.menu

    return Radiobutton_button


def makeFlavors(var):
    # make menu button 
    Radiobutton_button = Menubutton(mBar, text='Flavors', 
            underline=0)
    Radiobutton_button.pack(side=LEFT, padx='2m')

    # the primary pulldown
    Radiobutton_button.menu = Menu(Radiobutton_button)

    Radiobutton_button.menu.add_radiobutton(label='Strawberry',
              variable=var, value='Strawberry')

    Radiobutton_button.menu.add_radiobutton(label='Chocolate',
              variable=var, value='Chocolate')

    Radiobutton_button.menu.add_radiobutton(label='Rocky Road',
              variable=var, value='Rocky Road')

    # choose a default
    var.set("Chocolate")

    # set up a pointer from the file menubutton back to the file menu
    Radiobutton_button['menu'] = Radiobutton_button.menu

    return Radiobutton_button


def printStuff():
    print "party is", party.get()
    print "flavor is", flavor.get()
    print

#################################################
#### Main starts here ...
root = Tk()


# make a menu bar
mBar = Frame(root, relief=RAISED, borderwidth=2)
mBar.pack(fill=X)

# make two application variables, 
# one to control each radio button set
party = IntVar()
flavor = StringVar()

Radiobutton_button = makePoliticalParties(party)
Radiobutton_button2 = makeFlavors(flavor)

# finally, install the buttons in the menu bar. 
# This allows for scanning from one menubutton to the next.
mBar.tk_menuBar(Radiobutton_button, Radiobutton_button2)

b = Button(root, text="print party and flavor", foreground="red",
     command=printStuff)
b.pack(side=TOP)

root.title('menu demo')
root.iconname('menu demo')

root.mainloop()
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.