teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

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

2025/02/12 14:51

投稿

teamikl
teamikl

スコア8817

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