回答編集履歴

1

問題の原因に言及、mainloopが複数ある場合の問題点

2025/02/12 14:51

投稿

teamikl
teamikl

スコア8817

test CHANGED
@@ -22,6 +22,15 @@
22
22
  ただし、mainloopを抜けて再度 tk.Tk() を作るという事は、
23
23
  ウィンドウ作成の度に tkinter ライブラリ全体が終了・初期化されるという事を留意しておいてください。
24
24
  効率化の為には、初期化は一度のみにして、ウィンドウが複数必要であれば Toplevel を用いるように実装します。
25
+
26
+ 追記: 問題の原因
27
+ 恐らく2つめのウィンドウで `user.entry.get()` みたいな事をして、
28
+ 以前入力された値を参照したい場合、
29
+ mainloop() が終了しているので、以前の UI 内の値を参照出来ないというのが、
30
+ mainloopが複数ある場合の気を付けなければならない点。
31
+
32
+ mainloop 終了前に値を別の場所の保存しておくのは解決策の一つですが、
33
+ ウィンドウ毎にmainloopを終了せずに、初期化・終了は1度で済ませる方法もあります。
25
34
 
26
35
  ----
27
36
  お勧めできる解決策は、入力値を返すダイアログを使った実装方法です。