Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Tkinter中单选按钮值和选项菜单值_Python 2.7_User Interface_Tkinter - Fatal编程技术网

Python 2.7 Tkinter中单选按钮值和选项菜单值

Python 2.7 Tkinter中单选按钮值和选项菜单值,python-2.7,user-interface,tkinter,Python 2.7,User Interface,Tkinter,单选按钮的值保持为空值 opt1和opt2值除了默认值之外也不会更改 请帮忙。他们在变化,你只是没有跟踪变化。使用以下行设置它们时: def fresh(): t = Toplevel() t.geometry("%dx%d%+d%+d" % (600, 400, 0, 0)) rad1 = StringVar(t) opt1 = StringVar(t) opt1.set("School Board") opt2 = StringVar(t) opt2.set("Departm

单选按钮的值保持为空值

opt1和opt2值除了默认值之外也不会更改


请帮忙。

他们在变化,你只是没有跟踪变化。使用以下行设置它们时:

def fresh():
 t = Toplevel()
 t.geometry("%dx%d%+d%+d" % (600, 400, 0, 0))

 rad1 = StringVar(t)
 opt1 = StringVar(t)
 opt1.set("School Board")
 opt2 = StringVar(t)
 opt2.set("Department")

 form = Frame(t)
 form.pack()
 for (ix, label) in enumerate(fieldnames):
  lab = Label(form, text=label)
  ent = Entry(form)
  lab.grid(row=ix, column=0)
  ent.grid(row=ix, column=1)
  entries[label] = ent

 r1=Radiobutton(form, text="M", variable=rad1, value="M")
 r1.grid(row=5,column=0)


 r2 = Radiobutton(form, text="F", variable=rad1, value="F")
 r2.grid(row=5, column=1)
 student.gender = rad1.get()
 l = OptionMenu(form, opt1, "CBSE", "State Board","SB-TN","SB-KA","SB-KL","SB-AP","SB-RJ","SB-MH" )
 l.grid(row=6, column=1)
 student.SB = opt1.get()
 l2 = OptionMenu(form, opt2,"AE","CH","CI","CSE","ECE","EEE","EIE","ME" )
 l2.grid(row=7, column=1)
 student.dept = opt2.get() 
只有当控制流经过它们时,它才会被设置。所以,这些值将是代码启动时的值

可以使用该方法跟踪变量类实例。下面是一个小例子:

student.gender = rad1.get()
或者,您可以在Radiobutton选项中将
命令设置为回调。或者,如果不需要实时更新这些值,可以制作一个按钮,一次处理所有字段的处理

root = Tk()

def callback(*args): # function called when var changes
    print var.get()  # this is where you'd set another variable to var.get()

var = StringVar()

Radiobutton(root, text='M', variable=var, value='M').pack()
Radiobutton(root, text='F', variable=var, value='F').pack()

var.trace('w', callback) # this will call a function when var changes

mainloop()