Checkbox python 3.5复选框值不正确
我用tkinter在Python3.5中编写了一段代码,在从复选框的当前状态(True/False)获取正确的值时遇到了问题。 由于某些原因,我不总是正确的值。 这是我代码中产生问题的一小部分: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
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”按钮,将出现一个消息框,说明您必须选择其中一个选项(复选框)。但这两个复选框都已选中。我不知道问题出在哪里。这里有一个代码链接:对不起,我没有找到附加代码的方法。你的问题下面应该有一个“编辑”按钮。请编辑问题并将代码放在那里。