Checkbox python 3.5复选框值不正确

Checkbox python 3.5复选框值不正确,checkbox,tkinter,python-3.5,Checkbox,Tkinter,Python 3.5,我用tkinter在Python3.5中编写了一段代码,在从复选框的当前状态(True/False)获取正确的值时遇到了问题。 由于某些原因,我不总是正确的值。 这是我代码中产生问题的一小部分: import tkinter as tk from tkinter import messagebox # go button event listener def goButtonCallBack(): global show_skeleton_whole_body, show_skelet

我用tkinter在Python3.5中编写了一段代码,在从复选框的当前状态(True/False)获取正确的值时遇到了问题。 由于某些原因,我不总是正确的值。 这是我代码中产生问题的一小部分:

import tkinter as tk
from tkinter import messagebox

# go button event listener
def goButtonCallBack():
    global show_skeleton_whole_body, show_skeleton_no_legs
    show_skeleton_whole_body = var_whole_body.get()
    show_skeleton_no_legs = var_no_legs.get()
    if show_skeleton_whole_body==False and show_skeleton_no_legs==False:
        messagebox.showinfo("Try again", "You must choose one of the options!")
        return


if __name__ == '__main__':
    top = tk.Tk()
    top.geometry("650x550")
    var_whole_body = tk.IntVar()
    checkbox_whole_body = tk.Checkbutton(top, text = "Whole Body", variable = var_whole_body, \
                     onvalue = True, offvalue = False, height=5, \
                     width = 200)

    show_skeleton_whole_body = var_whole_body.get()
    print ('main before select: show_skeleton_whole_body')
    print (show_skeleton_whole_body)

    checkbox_whole_body.select()

    show_skeleton_whole_body = var_whole_body.get()
    print ('main after select: show_skeleton_whole_body')
    print (show_skeleton_whole_body)

    checkbox_whole_body.pack(side=tk.LEFT)
    checkbox_whole_body.place(x=15, y=200, width=100)

    var_no_legs= tk.IntVar()
    checkbox_no_legs = tk.Checkbutton(top, text = "  No Legs", variable = var_no_legs, \
                     onvalue = True, offvalue = False, height=4, \
                     width = 200)

    show_skeleton_no_legs = var_no_legs.get()
    print ('main before select: show_skeleton_no_legs')
    print (show_skeleton_no_legs)

    checkbox_no_legs.select()

    show_skeleton_no_legs = var_no_legs.get()
    print ('main after select: show_skeleton_no_legs')
    print (show_skeleton_no_legs)


    checkbox_no_legs.pack(side=tk.LEFT)
    checkbox_no_legs.place(x=15, y=250, width=100)


    # create the 'go' button
    bluebutton = tk.Button(top, text="go! >", fg="blue", command=goButtonCallBack)
    bluebutton.place(x=90, y=400)

    # instruction
    instructionsString = "bla bla bla"
    instructionsLabel = tk.Label(top, text=instructionsString, width=500, font=("Helvetica", 9))
    instructionsLabel.pack()
    instructionsLabel.place(x=15, y=450, width=500)

    top.mainloop()
    print('This is the end of the program!!')
由于某些原因,select()命令没有将值从0更改为1。 如果您运行代码并按下“go”按钮,将出现一个消息框,说明其中一个复选框应选中,但它们都已选中! 有人知道问题出在哪里吗

谢谢
David

请创建一个MCVE()。当我运行上面的代码时,它似乎工作得很好。调用
后,选择
值更改为1(一)。但奇怪的是,你将值设置为
True
False
,但实际上似乎希望值为0和1。谢谢Bryan。你说的很有意思,因为代码以前是有效的,现在突然不起作用了。我想也许我改变了什么,但没有注意到。但无论如何,代码对我不起作用。select命令不会将值更改为1。如果我把所有的代码都发给你会有帮助吗?不,会有帮助的是发布一个MCVE。构建MCVE过程的一部分是帮助您将问题提炼到其本质。通常,这个过程会使问题和解决方案不言而喻。我希望我理解正确,因为这是我第一次在这里发帖。你的意思是我将发布可以运行的最小代码,并且仍然产生问题,对吗?这是代码。我把它做得尽可能小。如果您运行它,然后按下“go”按钮,将出现一个消息框,说明您必须选择其中一个选项(复选框)。但这两个复选框都已选中。我不知道问题出在哪里。这里有一个代码链接:对不起,我没有找到附加代码的方法。你的问题下面应该有一个“编辑”按钮。请编辑问题并将代码放在那里。