-1
私はいくつかのチェックボタンとアクティブなチェックボタンを実行するためのボタンがあるpythonスクリプトを書いています。チェックボタンがアクティブで、 "実行"をクリックすると、def run_appはどのチェックボタンがアクティブであるかを確認する必要があります。しかし、私が自分のコードを実行すると、端末はグローバル名 "is_checked"が定義されていないと言っています。あなたの__init__
の外ではis_checked
変数がないことを意味し、ローカルに作成さPython Tkinter Checkボタンを実行
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()
is_checkedをself.is_checkedに変更しました。今私はエラーは出ませんが、私のexeは開かれています:/(私の質問のコードも変更しました) – Dennis
@Dennis回答を無関係にするあなたの質問を編集しないでください。また、 'command = self.open_vb'でこの行に何を意味するのか分かりません。 'self.open_vb'を実行するには、その代わりに' self.open_vb() 'が必要です。 – Lafexlos
申し訳ありません..私はそれを修正したと思います。 :) – Dennis