有没有办法让 Entry 小部件不模仿 Checkbutton 的值?
Is there a way for the Entry widget to not mimic the Checkbutton's value?
这是我到目前为止的代码(请忽略变量名。我仍在学习如何使用 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()
我注意到,当我 select Checkbutton 将其关闭或打开时,Entry 小部件会自动将其值更改为 Checkbutton 的值。有什么办法可以避免这种情况吗?
在 tkinter 中设置变量时,请确保使用内置类型 (https://docs.python.org/3/library/tkinter.html#coupling-widget-variables)。
对于 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 变量的实例,例如 StringVar
或 IntVar
。但是,您很少需要将该属性与 Entry
小部件一起使用,因为小部件本身为您提供了获取和设置值的方法。
这是我到目前为止的代码(请忽略变量名。我仍在学习如何使用 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()
我注意到,当我 select Checkbutton 将其关闭或打开时,Entry 小部件会自动将其值更改为 Checkbutton 的值。有什么办法可以避免这种情况吗?
在 tkinter 中设置变量时,请确保使用内置类型 (https://docs.python.org/3/library/tkinter.html#coupling-widget-variables)。
对于 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 变量的实例,例如 StringVar
或 IntVar
。但是,您很少需要将该属性与 Entry
小部件一起使用,因为小部件本身为您提供了获取和设置值的方法。