gpt4 book ai didi

python - Tkinter 复选按钮不起作用

转载 作者:行者123 更新时间:2023-11-28 19:03:15 25 4
gpt4 key购买 nike

我知道这看起来像是一个愚蠢的问题,但我已经阅读了我能找到的所有相关/类似问题,而且我很确定我遇到了一个不同的问题。有关我已避免的类似问题的列表,请参阅此问题的结尾。

我正在尝试使用 Tkinter Checkbutton。我几乎一字不差地使用了文档 (here) 中的示例代码。

from tkinter import Tk, Checkbutton, IntVar
class MyGUI:
def __init__(self, window):
self.var = IntVar()
self.c = Checkbutton(window,
text="Enable Tab",
variable=self.var,
command=self.cb)
self.c.pack()

def cb(self):
print("self.var is", self.var.get())

root = Tk()
gui = MyGUI(root)
root.mainloop()
root.destroy()

我唯一改变的是从 cb 方法中删除 event 参数,因为据我所知它没有被用于任何事情,并且checkbutton 不会将任何 event 传递给 cb

我的问题是存储复选按钮值的变量总是读取0,即使选中复选按钮也是如此:See behaviour here

我不知道我做错了什么。我知道我已经避免了以下陷阱:

此外,当我从 a question with a similar issue 运行代码时,我得到相同的行为——复选框总是返回 False/0——即使该问题被标记为已解决。

我正在使用具有以下版本的 Anaconda python:

Python 3.5.4 |Anaconda custom (64-bit)| (default, Nov  8 2017, 14:34:30) 
[MSC v.1900 64 bit (AMD64)]
IPython 6.2.1 -- An enhanced Interactive Python.

最佳答案

如果有人遇到同样的问题并需要快速修复,这是我的 hacky 解决方案:

from tkinter import Tk, Checkbutton, IntVar
class MyGUI:
def __init__(self, window):
self.var = IntVar()
self.c = Checkbutton(
window, text="Enable Tab",
command=lambda:self.toggle(self.var))
self.c.pack()

def toggle(self, var):
var.set(not var.get())

root = Tk()
gui = MyGUI(root)
root.mainloop()

关于python - Tkinter 复选按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50276202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com