回答編集履歴
1
補足を追加
answer
CHANGED
@@ -2,4 +2,11 @@
|
|
2
2
|
|
3
3
|
`block=False`を指定しない、あるいは`block=True`を指定すると、plt.showのウィンドウを閉じるまでrootウィンドウは操作に反応しなくなります。
|
4
4
|
|
5
|
-
もっとも、その間もイベントは貯えられているので、ENDボタンを押し(この時点では何も起きない)→plt.showのウィンドウを閉じる→(このタイミングでENDボタンが押されて)rootウィンドウが閉じる、という動作になります。
|
5
|
+
もっとも、その間もイベントは貯えられているので、ENDボタンを押し(この時点では何も起きない)→plt.showのウィンドウを閉じる→(このタイミングでENDボタンが押されて)rootウィンドウが閉じる、という動作になります。
|
6
|
+
|
7
|
+
---
|
8
|
+
IDLEから実行した場合は、rootウィンドウを閉じても、それまでに開いたplt.showのウィンドウは閉じません。これは、IDLEのウィンドウ("IDLE Shell X.X.X"と書いてあるほう)でPythonのプロセスが実行中のままになっていて、その子プロセスであるplt.showのウィンドウも閉じないのだと思われます。
|
9
|
+
|
10
|
+
実際に、IDLEのウィンドウ("IDLE Shell X.X.X"と書いてあるほう)を閉じると、plt.showのウィンドウも一緒に閉じますし、「Run」→「Run... Customized」(`Shift-F5`キー)でコードを実行する際に「Restart Shell」にチェックを付けても、古いplt.showのウィンドウは閉じます。
|
11
|
+
|
12
|
+
ということで、IDLEでは「ENDボタンを押すとplt.showのウィンドウも閉じる」という動作を実現するのは無理ですね。Visual Studio Codeへの移行を考えられてはどうでしょうか。
|