有没有办法让"条目"小部件不模仿复选按钮的值?



这里是我到目前为止的代码(请忽略变量名。我仍在学习如何使用Python(:

root = Tk()
testvariable = 0
bruh = 0
test = Checkbutton(root, variable = testvariable, )
test.pack()
test1 = Entry(root,textvariable = bruh, text = "0", width = 4)
test1.pack()
root.mainloop()

我注意到,当我选择Checkbutton来关闭或打开它时,Entry小部件会自动将其值更改为Checkbutton的值。有办法防止这种情况吗?

在tkinter中设置变量时,请确保使用内置类型(https://docs.python.org/3/library/tkinter.html#coupling-小部件变量(。

对于Entry小部件,您可以直接使用get方法将其值分配给变量。至于Checkbutton小部件,请确保为其分配一个";IntVar";类型以正确处理其值传递。我已经在下面的代码中演示了如何同时执行以上两项操作。

import tkinter as tk
root = tk.Tk()
checkbox_var = tk.IntVar()
testvariable = 0
bruh = 0
test = tk.Checkbutton(root, variable=checkbox_var)
test.pack()
test1 = tk.Entry(root)
test1.pack()
def testOutput():
testvariable = checkbox_var.get()
bruh = test1.get()
print("Checkbox is", testvariable)
print("Entry is", bruh)
button = tk.Button(root, text="Test Button", command=testOutput)
button.pack()
root.mainloop()

它们相互模仿,因为它们的两个textvariable属性都是相同的值。简短的答案是给它们每个不同的textvariable值。

此外,您应该将该属性设置为tkinter变量(如StringVarIntVar(的实例。然而,您很少需要在Entry小部件中使用该属性,因为小部件本身为您提供了获取和设置值的方法。

最新更新