前提・実現したいこと
計算条件を入力するボックスをtkinterで作っています。
2段階での入力としたいのですが、2回目のボックスが出る際にターミナルに以下の警告文が出ます。
計算が止まるわけでもなくそのまま動くのですがちょっと気持ち悪いので解消したいです。
なかなか情報が見つからず、ご教授いただきたいです。
発生している問題・エラーメッセージ
invalid command name ".!button" while executing "$w cget -state" (procedure "tk::ButtonDown" line 12) invoked from within "tk::ButtonDown .!button" (command bound to event)
該当のソースコード
簡略化のため2つのボックスとも入力条件を1項目のみとしていますが、実際はもっと多くて項目数も違います。
python3.7.1
1import tkinter 2import tkinter.messagebox 3 4def applyFinishOne(event): 5 6 global Entry_de_val 7 8 Entry_de_val = Entry_de.get() 9 root4.destroy() 10 11 12def settingOne(): 13 14 global Entry_de 15 global root4 16 17 root4 = tkinter.Tk() 18 root4.title('計算条件1') 19 root4.geometry('600x300') 20 root4.attributes('-topmost', True) 21 ### ラベル 22 Static_de = tkinter.Label(text='条件1 (m)') #文字の背景色 23 Static_de.place(x=10, y=10) #指定位置に 24 ### Entry 25 Entry_de = tkinter.Entry(width=30) 26 Entry_de.insert(tkinter.END, '0.6') 27 Entry_de.place(x=150, y=10) 28 ### ボタン 29 Button_sta = tkinter.Button(text='適用して実行', width=10) 30 Button_sta.bind('<Button-1>', applyFinishOne) 31 Button_sta.place(x=310, y=150) 32 33 root4.mainloop() 34 35 return Entry_de_val, 36 37 38def applyFinishTwo(event): 39 40 global Entry1_val 41 42 Entry1_val = Entry1.get() 43 root2.destroy() 44 45 46def settingTwo(): 47 48 global Entry1 49 global root2 50 51 root2 = tkinter.Tk() 52 root2.title('計算条件2') 53 root2.geometry('600x300') 54 root2.attributes('-topmost', True) 55 ### ラベル 56 Static1 = tkinter.Label(text='計算条件2') 57 Static1.place(x=10, y=10) 58 ### Entry 59 Entry1 = tkinter.Entry(width=30) 60 Entry1.insert(tkinter.END, '3000') 61 Entry1.place(x=150, y=10) 62 ### Button 63 Button3 = tkinter.Button(text='適用して実行', width=10) 64 Button3.bind('<Button-1>', applyFinishTwo) 65 Button3.place(x=310, y=150) 66 67 root2.mainloop() 68 69 return Entry1_val, 70 71 72print(settingOne()) 73print(settingTwo())
補足情報(FW/ツールのバージョンなど)
tk 8.6.8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。