[Tkinter-discuss] RADIOBUTTON AND BUTTON
EDWINFMI
egpalma at hotmail.com
Thu Jul 31 19:08:59 CEST 2008
Hy guys
I am testing my script, but something weird happend with this script.
When i was running the script with the command print at the end of the
function calculation, i got a good result , this means that my script is
well done, but whe i am using the command return i can not define a value by
using my button execute and always this script is printing a result before
the execution.
The main idea is to select a option and after that to execute a conditional
with fornulas inside.
thanks in advance
#####by using return
#-----------------------------------------
from Tkinter import * # start of GUI Panel stuff
import tkMessageBox
from grail.data import pcf
from grail.data import model
from grail.dialogs import gselectprojectdialog
from grail import const
from grail import gsys
from grail import messages
import time
import glob
import string
import time
import sys
import os
import math
import Pmw
class notebook:
# initialization. receives the master widget
# reference and the notebook orientation
def __init__(self, master, side=LEFT):
self.active_fr = None
self.count = 0
self.choice = IntVar(0)
# allows the TOP and BOTTOM
# radiobuttons' positioning.
if side in (TOP, BOTTOM):
self.side = LEFT
else:
self.side = TOP
# creates notebook's frames structure
self.rb_fr = Frame(master, borderwidth=2, relief=RIDGE)
self.rb_fr.pack(side=side, fill=BOTH)
self.screen_fr = Frame(master, borderwidth=2, relief=RIDGE)
self.screen_fr.pack(fill=BOTH)
# return a master frame reference for the external frames (screens)
def __call__(self):
return self.screen_fr
# add a new frame (screen) to the (bottom/left of the) notebook
def add_screen(self, fr, title):
b = Radiobutton(self.rb_fr, text=title, indicatoron=0, \
variable=self.choice, value=self.count, \
command=lambda: self.display(fr))
b.pack(fill=BOTH, side=self.side)
# ensures the first frame will be
# the first selected/enabled
if not self.active_fr:
fr.pack(fill=BOTH, expand=1)
self.active_fr = fr
self.count += 1
# returns a reference to the newly created
# radiobutton (allowing its configuration/destruction)
return b
# hides the former active frame and shows
# another one, keeping its reference
def display(self, fr):
self.active_fr.forget()
fr.pack(fill=BOTH, expand=1)
self.active_fr = fr
# END
#================================================================================
def calculation():
global method_case
#===================================================================
# METHOD CASE
#===================================================================
method_case = r.get()# 0 Simple Best
# 1 Simple cutoff
# 2 Complex cutoff file 19
root.destroy()
return
if method_case == 0:
print "es 0"
if method_case == 1:
print "es 1"
if method_case == 2:
print "es 2"
###-------------------------------
root = Tk()
root.title(" Project Office")
root.geometry("450x400")
n = notebook(root, LEFT)
Pmw.initialise()
button3 = Button(root,text="Accept",fg="red", command=calculation)
button3.pack(side="top")
button4 = Button(root,text="Cancel",fg="red", command=root.destroy)
button4.pack(side="top")
# uses the notebook's frame
#====================================================================
#
#===================================================================
f1 = Frame(n())
method =[('SIMPLE BEST BLOCK VALUE', 0), ('SIMPLE APPLIED CUTOFF', 1),
('COMPLEX APPLIED CUTOFF FILE 19', 2)]
r = IntVar()
r.set(0)
for text, value in method:
b = Radiobutton(f1, text=text,value=value, variable=r)
b.pack(anchor=W)
case.set(0)
# keeps the reference to the radiobutton (optional)
x1 = n.add_screen(f1, "Case Study")
root.mainloop()
# END
#####by using print
#-----------------------------------------
from Tkinter import * # start of GUI Panel stuff
import tkMessageBox
from grail.data import pcf
from grail.data import model
from grail.dialogs import gselectprojectdialog
from grail import const
from grail import gsys
from grail import messages
import time
import glob
import string
import time
import sys
import os
import math
import Pmw
class notebook:
# initialization. receives the master widget
# reference and the notebook orientation
def __init__(self, master, side=LEFT):
self.active_fr = None
self.count = 0
self.choice = IntVar(0)
# allows the TOP and BOTTOM
# radiobuttons' positioning.
if side in (TOP, BOTTOM):
self.side = LEFT
else:
self.side = TOP
# creates notebook's frames structure
self.rb_fr = Frame(master, borderwidth=2, relief=RIDGE)
self.rb_fr.pack(side=side, fill=BOTH)
self.screen_fr = Frame(master, borderwidth=2, relief=RIDGE)
self.screen_fr.pack(fill=BOTH)
# return a master frame reference for the external frames (screens)
def __call__(self):
return self.screen_fr
# add a new frame (screen) to the (bottom/left of the) notebook
def add_screen(self, fr, title):
b = Radiobutton(self.rb_fr, text=title, indicatoron=0, \
variable=self.choice, value=self.count, \
command=lambda: self.display(fr))
b.pack(fill=BOTH, side=self.side)
# ensures the first frame will be
# the first selected/enabled
if not self.active_fr:
fr.pack(fill=BOTH, expand=1)
self.active_fr = fr
self.count += 1
# returns a reference to the newly created
# radiobutton (allowing its configuration/destruction)
return b
# hides the former active frame and shows
# another one, keeping its reference
def display(self, fr):
self.active_fr.forget()
fr.pack(fill=BOTH, expand=1)
self.active_fr = fr
# END
#================================================================================
def calculation():
global method_case
#===================================================================
# METHOD CASE
#===================================================================
method_case = r.get()# 0 Simple Best
# 1 Simple cutoff
# 2 Complex cutoff file 19
root.destroy()
print method_case
###-------------------------------
root = Tk()
root.title(" Project Office")
root.geometry("450x400")
n = notebook(root, LEFT)
Pmw.initialise()
button3 = Button(root,text="Accept",fg="red", command=calculation)
button3.pack(side="top")
button4 = Button(root,text="Cancel",fg="red", command=root.destroy)
button4.pack(side="top")
# uses the notebook's frame
#====================================================================
#
#===================================================================
f1 = Frame(n())
method =[('SIMPLE BEST BLOCK VALUE', 0), ('SIMPLE APPLIED CUTOFF', 1),
('COMPLEX APPLIED CUTOFF FILE 19', 2)]
r = IntVar()
r.set(0)
for text, value in method:
b = Radiobutton(f1, text=text,value=value, variable=r)
b.pack(anchor=W)
case.set(0)
# keeps the reference to the radiobutton (optional)
x1 = n.add_screen(f1, "Case Study")
root.mainloop()
# END
--
View this message in context: http://www.nabble.com/RADIOBUTTON-AND-BUTTON-tp18759173p18759173.html
Sent from the Python - tkinter-discuss mailing list archive at Nabble.com.
More information about the Tkinter-discuss
mailing list