我想编写一个python脚本,其中有一些Checkbuttons和一个用于运行我的活动检查按钮的按钮。如果一个检查按钮处于活动状态,我点击"运行" def run_app应该检查哪些检查按钮是活动的。但是,如果我运行我的代码,终端说,全局名称" is_checked"没有定义。
from Tkinter import *
import os
import sys
import os.path
import subprocess
exe = (path of my exe)
call = exe
class App:
def __init__(self, master):
self.is_checked = IntVar()
frame = Frame(master)
frame.pack()
self.test = Checkbutton(frame,
text="Verzeichnisse",
)
self.test.pack(side=LEFT)
self.slogan = Checkbutton(frame,
text="Visual Studio",
onvalue=1,
offvalue=0,
variable=self.is_checked
)
self.slogan.pack(side=LEFT)
self.button = Button(frame,
text="RUN", fg="red",
command=self.run_app)
self.button.pack(side=LEFT)
def open_vb(self):
subprocess.call(call, shell=True)
def run_app(self):
if self.is_checked.get():
command=self.open_vb
root = Tk()
app = App(root)
root.mainloop()
答案 0 :(得分:1)
is_checked
在本地创建,这意味着is_checked
之外没有__init__
变量。
如果要在创建它之外使用该变量,则需要将其设为global
或绑定到类。由于你已经有了类结构,最好使用后者。
您需要将is_checked
更改为self.is_checked
,以使该变量成为类的一部分。