Tkinter Checkbuttons的值不会改变

时间:2019-05-17 06:45:37

标签: python-3.x tkinter

我正在尝试制作一个程序,您可以在其中选择事件,然后打印所述选择的事件。我正在使用复选按钮以显示标题中的事件列表。但是我无法更改每个复选框的值来验证将要打印的事件。

我尝试分配IntVar()变量,但仍然无法正常工作,当我使用get()打印checkbutton的值时,即使选择了checkbutton,它也会打印零。 return 1.下面是我的程序的一部分,包括我的主窗口的一小部分和create checkbutton窗口功能。

from tkinter import *

root = Tk()

#Variables 
titles = ["soccer match","Basketball match","running", "Table Tennis", "paintball", "chess match"] 
button_list = []

#Button to get all the values from checkbuttons
def done_press():
    global button_list
    for title_index in range(len(titles)):
        print(button_list[title_index].get()) 

#Checkbutton window
def checkbutton():
    check_window = Tk()
    for x in range(len(titles)):
        button_list.append(IntVar()) 
        l = Checkbutton(check_window, text=titles[x], variable=button_list[x])
        l.pack(padx=10,pady=10)
    done = Button(check_window, text ="Done", command=done_press)
    done.pack(padx=10,pady=10)

#Main Window
button = Button(root,text = "click me!",command= checkbutton)
button.pack()
root.mainloop()

要使每个选中按钮返回1作为变量,我应该改变什么?

1 个答案:

答案 0 :(得分:3)

您的代码很好,但只有一小部分:

SELECT [Text] 
FROM #Data

-------
Text
-------
Visu"al
Visual
Visual1
Visual2
Visual3
Visual[   

这将创建check_window = Tk() 的另一个实例,并且Tk的两个实例无法轻松地在彼​​此之间传递变量。

只需将其更改为:

Tk