前提・実現したいこと
応力の算定式を作成しています。
「Checkbutton」で「True」になった項目から、それに対応する公式を呼び出し(def cal)、その関数の中に特定の数値を入力し(def cal_load)、その数値を「def cal」で呼び出した公式に代入した値を(def cal_form)、ラベルに定義して表示させたい(def cal_Ans)
ここに質問の内容を詳しく書いてください。
関数にて表示させた数値を違う関数に読み取らせることは不可能でしょうか。
初めて参考書を読み解きながら、プログラム作成しています。
ご教授いただければ幸いです。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
santei ボタンを押すとAは見つかりませんと表示される。
def cal_load の中で自分では定義できていると思っているのですが・・・
エラーメッセージ
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\python\lib\tkinter_init_.py", line 1883, in call
return self.func(*args)
File "sample.py", line 85, in cal_form
P = float(A.get())
NameError: name 'A' is not defined
該当のソースコード
import
1Sb_stress = tk.Tk() 2Sb_stress.title('sample') 3 4check1 = tk.BooleanVar() 5check1.set(False) 6ch1 = tk.Checkbutton(Sb_stress, variable=check1, text = 'AAA').grid(column=0,row=5) 7 8check2 = tk.BooleanVar() 9check2.set(False) 10ch2 = tk.Checkbutton(Sb_stress, variable=check2, text = 'BBB').grid(column=1,row=5) 11 12check3 = tk.BooleanVar() 13check3.set(False) 14ch3 = tk.Checkbutton(Sb_stress, variable=check3, text = 'CCC').grid(column=2,row=5) 15 16check4 = tk.BooleanVar() 17check4.set(False) 18ch4 = tk.Checkbutton(Sb_stress, variable=check4, text = 'DDD').grid(column=0,row=6) 19 20check5 = tk.BooleanVar() 21check5.set(False) 22ch5 = tk.Checkbutton(Sb_stress, variable=check5, text = 'EEE').grid(column=1,row=6) 23 24check6 = tk.BooleanVar() 25check6.set(False) 26ch6 = tk.Checkbutton(Sb_stress, variable=check6, text = 'FFF').grid(column=2,row=6) 27 28def cal(): 29 if check1.get() == True: 30 Result1_1 = tk.Label(Sb_stress, text='A11').grid(column=0,row=7) 31 if check1.get() == True: 32 Result1_2 = tk.Label(Sb_stress, text='A22').grid(column=1,row=7) 33 if check1.get() == True: 34 Result1_3 = tk.Label(Sb_stress, text='A33').grid(column=2,row=7) 35 36 if check2.get() == True: 37 Result2_1 = tk.Label(Sb_stress, text='B11').grid(column=0,row=8) 38 if check2.get() == True: 39 Result2_2 = tk.Label(Sb_stress, text='B22').grid(column=1,row=8) 40 if check2.get() == True: 41 Result2_3 = tk.Label(Sb_stress, text='B33').grid(column=2,row=8) 42 43 if check3.get() == True: 44 Result3_1 = tk.Label(Sb_stress, text='C11').grid(column=0,row=9) 45 if check3.get() == True: 46 Result3_2 = tk.Label(Sb_stress, text='C22').grid(column=1,row=9) 47 if check3.get() == True: 48 Result3_3 = tk.Label(Sb_stress, text='C33').grid(column=2,row=9) 49 50 if check4.get() == True: 51 Result4_1 = tk.Label(Sb_stress, text='D11').grid(column=0,row=9) 52 if check4.get() == True: 53 Result4_2 = tk.Label(Sb_stress, text='D22').grid(column=1,row=9) 54 if check4.get() == True: 55 Result4_3 = tk.Label(Sb_stress, text='D33').grid(column=2,row=9) 56 57 if check5.get() == True: 58 Result5_1 = tk.Label(Sb_stress, text='E11').grid(column=0,row=10) 59 if check5.get() == True: 60 Result5_2 = tk.Label(Sb_stress, text='E22').grid(column=1,row=10) 61 if check5.get() == True: 62 Result5_3 = tk.Label(Sb_stress, text='E33').grid(column=2,row=10) 63 64 if check6.get() == True: 65 Result6_1 = tk.Label(Sb_stress, text='F11').grid(column=0,row=11) 66 if check6.get() == True: 67 Result6_2 = tk.Label(Sb_stress, text='F22').grid(column=1,row=11) 68 if check6.get() == True: 69 Result6_3 = tk.Label(Sb_stress, text='F33').grid(column=2,row=11) 70 71tk.Button(Sb_stress, text='shiki', command=cal).grid(column=0,row=15) 72 73def cal_load(): 74 if check1.get() == True: 75 label_A = tk.Label(Sb_stress, text='kajuu') 76 label_A.grid(column=0,row=16) 77 A = tk.Entry(Sb_stress) 78 A.grid(column=0,row=17) 79 80tk.Button(Sb_stress, text='kajuuko', command=cal_load).grid(column=0,row=20) 81 82def cal_form(): 83 if check1.get() == True: 84 P = float(A.get()) 85 RA = P / 2 86 Ans = tk.Label(Sb_stress, text='RA').grit(column=0,row=21) 87 88tk.Button(Sb_stress, text='santei', command=cal_form).grid(column=0,row=25) 89 90def cal_Ans(): 91 labelResultRF_A['text'] = RA 92 labelResultRF_A = tk.Label(Sb_stress, text='---') 93 labelResultRF_A.grid(column=0,row=26) 94 95 96tk.Button(Sb_stress, text='kekka', command=cal_Ans).grid(column=0,row=30) 97Sb_stress.mainloop() 98 99コード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
関数の中に定義した数値は読めないのかと思い
Aを関数ではなくラベルで最初からさせてみましたが駄目でした・・・
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/17 08:52