所以,基本上发生了什么是我做了一个密码管理器,它有一个密码生成部分,我将它移动到一个窗口化的Tkinter程序,以方便使用。除了复选框外,我得到了一切,所以起初当函数被调用时,它会给我错误的是字母表有空的长度,所以我设置字母表与特殊字符列表相等。之后,我用while循环尝试了它们,结果相同。 (这整个代码是程序中的一个函数,只有在按下按钮时才会运行)我知道我可以用init修复这个问题,但我希望如果有人知道一个更简单的方法,而不会重写太多。这里是编辑简化代码。我用了while循环,并得到了与if语句相同的结果。我得到了这种情况下未定义a的错误。Tkinter cbox不更改var值
from tkinter import *
import random
def cbox_var():
while cbox_1 == True:
a = 10
while cbox_1 == False:
a = 20
print(a)
main = Tk()
cbox_1 = Checkbutton(main, text="yes or no")
cbox_1.pack()
testbutton = Button(main,text="Test", command=cbox_var)
testbutton.pack()
main.mainloop()
我知道我使用的变量是很糟糕,但我试图让一切为了我的第一个程序向右走。 –
请创建一个[mcve]。在你的问题中没有足够的代码来知道问题是什么,并且你没有留下关键的细节,比如什么类型的对象是'special_characters_cbox'。 –
我创建了一个最小,完整和可验证的代码示例。它显示复选框在单击时不分配变量。 –