0
我目前正在编写一个使用Tkinter为用户提供图形界面的应用程序。Tkinter复选框“名称未定义”
该应用程序运行良好,最近我决定添加一些复选框,这个想法是当用户选中其中一个框时,另一组文本通过API发送。
我有我能够得到很好地工作,但由于某种原因,每当我尝试和检索复选框的值输入框,我得到以下错误:
if check.get():
NameError: name 'check' is not defined
对于生活我无法弄清楚为什么会出现这个错误,这里是我的代码的其余部分,为了使它更清晰,我删除了输入框的工作代码。
from tkinter import *
class GUI:
def __init__(self, master):
check = IntVar()
self.e = Checkbutton(root, text="check me", variable=check)
self.e.grid(row=4, column=2)
self.macro_button = Button(master, text="Test Button", command=self.test)
self.macro_button.grid(row=11, column=1)
def test(self):
if check.get():
print('its on')
else:
print('its off')
root = Tk()
root.resizable(width=False, height=False)
my_gui = GUI(root)
root.mainloop()
当运行该代码,然后按标有“测试按钮”按钮,即当误差出现在我的终端。
任何人都有任何想法为什么这发生在我的复选框,而不是我的inputboxes?
编辑:
什么是对我来说更奇怪的是,这个代码,我发现在网上进行教你如何使用Tkinter的复选框的工作就像一个魅力,它几乎等同于雷:
import tkinter as tk
root = tk.Tk()
var = tk.IntVar()
cb = tk.Checkbutton(root, text="the lights are on", variable=var)
cb.pack()
def showstate():
if var.get():
print ("the lights are on")
else:
print ("the lights are off")
button = tk.Button(root, text="show state", command=showstate)
button.pack()
root.mainloop()
非常感谢你的回应,它完美的作品,很明显,我是新来的这一切哈哈!当我不必为输入框中输入的文本变量执行相同操作时,为什么必须将其设置为实例变量? @ Luke.py – Ruthus99
什么是输入框?你的意思是入口小部件?我可以看到你的代码中的任何一个! :S已经解决了你的问题? –
是的我的意思是入口小部件,我知道我把它们留在了外面,但我只是问一个普通的python问题。是的,我的问题已经解决了,谢谢@ luke.py – Ruthus99