Python Tkinter运行检查按钮

时间:2016-07-12 12:25:12

标签: python tkinter

我想编写一个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()

1 个答案:

答案 0 :(得分:1)

is_checked在本地创建,这意味着is_checked之外没有__init__变量。

如果要在创建它之外使用该变量,则需要将其设为global或绑定到类。由于你已经有了类结构,最好使用后者。

您需要将is_checked更改为self.is_checked,以使该变量成为类的一部分。