radiobutton的tkinter'var'始终返回0

时间:2018-04-16 11:00:50

标签: python tkinter radio-button var

from the List of radio button I want to know which one was clicked

每当点击一个单选按钮( 在python Tkinter 中)时,它返回0 ......

我尝试了以下方法:

  • 声明'var'变量全局
  • 在所有函数中传递var变量

但是没有一个步骤正在运作

def get_date(var):
    path_read = E1.get()
    date_list = readunparseddata.getdate_unparseddate(path_read)
    show_date(date_list,var)


def show_date(list_date,var):
    print(var)
    frame = Tk()
    #v.set(1)
    Label(frame,text="""Choose your Date :""",justify=LEFT,padx=20).pack( anchor = W )
    count = 0
    for date in list_date:
        print count
        R1=Radiobutton(frame, text=date, padx=20, value=count, variable=var, command=lambda:ShowChoice(var))
        R1.pack()
        count+=1

def ShowChoice(var):
    print "option : " + str(var.get())


top = Tk()
var=IntVar()

2 个答案:

答案 0 :(得分:1)

问题在于我正在创建的Tk()实例。 下面的链接(1)表示使用TopLevel()来解决问题

答案 1 :(得分:0)

增加选择单选按钮时正在调用的函数中的计数器。 这是一个帮助你的例子。它打印选择按钮的次数。

import Tkinter as tk
count=0
root = tk.Tk()
def add():
    global count
    count=count+1
    print count
v = tk.IntVar()

tk.Label(root, 
        text="""Choose a 
programming language:""",
        justify = tk.LEFT,
        padx = 20).pack()
tk.Radiobutton(root, 
              text="Python",
              padx = 20, 
              variable=v, 
              value=1,command=add).pack(anchor=tk.W)
root.mainloop()