目的:
UIを起動させて、Submit押下した際にチェックボタンのチェック状態を別のファイル「DoTask.py」doTaskメソッドに引き渡して処理を続けたい。しかしどう工夫しても何かしらのエラーが出てうまくいかない。
エラー:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Anaconda3\lib\tkinter_init_.py", line 1883, in call
return self.func(*args)
File "C:/Users/abc/PycharmProjects/pythonProject/menu1.py", line 56, in test
list_status = (v_1.get(), v_2.get(), v_3.get(), v_4.get(), v_5.get())
NameError: name 'v_1' is not defined
↓menu.py
python
1from tkinter import * 2from tkinter import ttk 3from DoTask import DoTask 4 5class Application(): 6 7 def create_menu(self): 8 root = Tk() 9 root.title("test) 10 11 frame = ttk.Frame(root, padding=1) 12 frame.grid() 13 14 15 v_1 = BooleanVar() 16 v_1.set(True) 17 cb_onProgress = ttk.Checkbutton(frame, padding=(10), text="1", variable=v_1) 18 cb_onProgress.grid(row=1,column=1) 19 20 v_2 = BooleanVar() 21 v_2.set(True) 22 cb_approved = ttk.Checkbutton(frame, padding=(10), text="2", variable=v_2) 23 cb_approved.grid(row=1,column=2) 24 25 v_3 = BooleanVar() 26 v_3.set(True) 27 cb_rejected = ttk.Checkbutton(frame, padding=(10), text="3", variable=v_3) 28 cb_rejected.grid(row=1,column=3) 29 30 v_4 = BooleanVar() 31 v_4.set(True) 32 cb_canceled = ttk.Checkbutton(frame, padding=(10), text="4", variable=v_4) 33 cb_canceled.grid(row=1,column=4) 34 35 v_5 = BooleanVar() 36 v_5.set(True) 37 cb_finished = ttk.Checkbutton(frame, padding=(10), text="5",variable=v_5) 38 cb_finished.grid(row=1,column=5) 39 40 button = ttk.Button(frame, text="submit", command=self.test) 41 # button.bind("<Button-1>", self.test) 42 button.grid(row=3,column=0) 43 root.mainloop() 44 45 46 def test(self): 47 global v_1 48 global v_2 49 global v_3 50 global v_4 51 global v_5 52 53 list_status = (v_1.get(), v_2.get(), v_3.get(), v_4.get(), v_5.get()) 54 DoTask.doTask(list_status) 55 56 57if __name__ == '__main__': 58 Application = Application() 59 Application.create_menu() 60 61
↓DoTask.py
python
1from selenium import webdriver 2from time import sleep 3import ast 4 5class DoTask(): 6 7 def doTask(self,list_status): 8 print(list_status)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/07 06:39