特定のウィンドウが閉じたときに、どのようにしてすべてのTkinterウィンドウを閉じますか?

スクコーダー

私はPythonTkinterでこのアプリケーションを持っています。メインメニューであるPythonファイルがあります。メインメニューのオプションをクリックすると、新しいウィンドウを作成するコードを含むPythonファイルがインポートされます(Toplevel何らかの理由で新しいウィンドウに使用できませんでした)。したがって、メインメニューを閉じると、他のすべてのウィンドウが閉じるはずです。

メインメニューのコードは次のとおりです。

from tkinter import *


root = Tk()
root.geometry("600x600")


def newWindowImport():
    import file1

def newWindowImport2():
    import file2


newWindow = Button(text="new window", command=newWindowImport).pack()
newWindow2 = Button(text="new window", command=newWindowImport2).pack()


# Here is there a way so that when I exit it destroys the Main Menu as well as the opened windows
exitBtn = Button(text="Exit", command=root.destroy())


root.mainloop()

このroot.destroy方法を試しましたが、メインメニューのみが破壊され、すべてのウィンドウが破壊されるわけではありません。メインメニューを終了すると、開いているウィンドウだけでなくメインメニューも破棄する方法はありますか?使用する場合Toplevel-別のファイルでどのように使用しますか?

AST

他のスクリプトにはTk()、独自のインスタンスがありmainloop()関数の下にないことを前提としています。その場合は、ファイル内のすべてのコードを関数の下に置くことができToplevel()、たとえば、次のfile1ようなります。

def something():
    window=Toplevel()
    #Rest of the code

そして同様にfile2、その後あなたのメインプログラムであなたはこのようなことをすることができます

from tkinter import *
import file1, file2

root = Tk()
root.geometry("600x600")

def newWindowImport():
    file1.something()

def newWindowImport2():
    file2.something()

newWindow = Button(text="new window", command=newWindowImport)
newWindow.pack()
newWindow2 = Button(text="new window", command=newWindowImport2)
newWindow2.pack()

# Here is there a way so that when I exit it destroys the Main Menu as well as the opened windows
exitBtn = Button(text="Exit", command=root.destroy)

root.mainloop()

関数を手放し、これらの変更を加えて短くすることもできます

newWindow = Button(text="new window", command=file1.something)
newWindow.pack()
newWindow2 = Button(text="new window", command=file2.something)
newWindow2.pack()

アプローチが機能しない理由は、各ファイルに独自のファイルがあるため、メインコードmainloop()を呼び出しroot.destroyときにファイルを破棄できなかったためです。

また、括弧を削除したことにも注意してください。括弧()command=root.destroy、プログラムが初期化されるとすぐに呼び出されます。

編集:コメントで@martineauによっても示唆されているよう.pack()に、ButtonインスタンスNoneに戻りある値保持させるのではなく、プログラムの後半でインスタンスを使用する際の柔軟性が高まるためインスタンスを個別に使用することをお勧めします.pack()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

親ウィンドウが閉じているときに子ウィンドウを閉じるにはどうすればよいですか?(WPF)

分類Dev

メインウィンドウを閉じずにTkinterの単一のウィンドウを閉じるにはどうすればよいですか?

分類Dev

ユーザーがモーダルウィンドウの外側をクリックしたときに、jqueryを使用してw3schoolsの例のモーダルウィンドウを閉じるにはどうすればよいですか?

分類Dev

実際のウィンドウを閉じて、ViewModelから新しいウィンドウを開きます

分類Dev

すべてのタブとウィンドウを閉じ、vimを開いたままにする方法

分類Dev

Java GUIのボタンをクリックしたときに、新しいウィンドウを開いて現在のウィンドウを閉じるにはどうすればよいですか?

分類Dev

ScriptManagerを使用して現在のウィンドウを閉じ、別のウィンドウを開くときにエラーが発生しました

分類Dev

GoogleChromeが閉じるときにウィンドウの位置を記憶しないようにする

分類Dev

JSを使用して、現在のブラウザウィンドウの代わりにウィンドウを開き、閉じますか?

分類Dev

JavaScriptでボタンが押されたときにウィンドウを開いて別のウィンドウを閉じるにはどうすればよいですか?

分類Dev

タスクでウィンドウを閉じることをキャンセルします。タスクが同期して戻ったかどうかをどのように検出できますか?

分類Dev

コードを使用してTkinterのウィンドウを閉じるにはどうすればよいですか?

分類Dev

現在のウィンドウを閉じて前のウィンドウを開きますか?

分類Dev

Python TkinterでTopLevelウィンドウのみを閉じるにはどうすればよいですか?

分類Dev

Matlabで特定のウィンドウを閉じることができないようにすることはできますか?

分類Dev

Pythontkinterですべてのウィンドウを閉じる

分類Dev

Pythonでwin32guiを使用してハンドル付きのウィンドウを閉じるにはどうすればよいですか

分類Dev

Android Webview:スクリプトは、スクリプトによって開かれたウィンドウのみを閉じることができます

分類Dev

Firefox Developer EditionのDOMプロパティウィンドウをどのように閉じますか?

分類Dev

Electronを使用するときにすべてのアプリウィンドウを閉じる

分類Dev

AppleScriptで特定のターミナルウィンドウをターゲットにして閉じるにはどうすればよいですか?

分類Dev

新しいウィンドウを閉じるまで元のウィンドウを使用できないように、electron jsで新しいウィンドウを作成するにはどうすればよいですか?

分類Dev

JavaでSelenium WebDriverを使用して特定のウィンドウを閉じるにはどうすればよいですか?

分類Dev

tkinterでウィンドウを閉じる前に特定のコマンドを実行します

分類Dev

vimの現在のタブでのみすべてのウィンドウを閉じるにはどうすればよいですか?

分類Dev

両方を閉じずに2つのウィンドウを開いているGUIの1つのウィンドウをどのように閉じますか?

分類Dev

Windowsコマンドコンソールを閉じたときにtkinterウィンドウが閉じないようにする方法

分類Dev

ウィンドウオブジェクトがカプセル化されている場合、どのようにpython-tkinterウィンドウを閉じますか?

分類Dev

Python3を介してSeleniumとWebDriverを使用してタブを切り替えているときに、「NoSuchWindowException:そのようなウィンドウはありません:ウィンドウはすでに閉じられています」

Related 関連記事

  1. 1

    親ウィンドウが閉じているときに子ウィンドウを閉じるにはどうすればよいですか?(WPF)

  2. 2

    メインウィンドウを閉じずにTkinterの単一のウィンドウを閉じるにはどうすればよいですか?

  3. 3

    ユーザーがモーダルウィンドウの外側をクリックしたときに、jqueryを使用してw3schoolsの例のモーダルウィンドウを閉じるにはどうすればよいですか?

  4. 4

    実際のウィンドウを閉じて、ViewModelから新しいウィンドウを開きます

  5. 5

    すべてのタブとウィンドウを閉じ、vimを開いたままにする方法

  6. 6

    Java GUIのボタンをクリックしたときに、新しいウィンドウを開いて現在のウィンドウを閉じるにはどうすればよいですか?

  7. 7

    ScriptManagerを使用して現在のウィンドウを閉じ、別のウィンドウを開くときにエラーが発生しました

  8. 8

    GoogleChromeが閉じるときにウィンドウの位置を記憶しないようにする

  9. 9

    JSを使用して、現在のブラウザウィンドウの代わりにウィンドウを開き、閉じますか?

  10. 10

    JavaScriptでボタンが押されたときにウィンドウを開いて別のウィンドウを閉じるにはどうすればよいですか?

  11. 11

    タスクでウィンドウを閉じることをキャンセルします。タスクが同期して戻ったかどうかをどのように検出できますか?

  12. 12

    コードを使用してTkinterのウィンドウを閉じるにはどうすればよいですか?

  13. 13

    現在のウィンドウを閉じて前のウィンドウを開きますか?

  14. 14

    Python TkinterでTopLevelウィンドウのみを閉じるにはどうすればよいですか?

  15. 15

    Matlabで特定のウィンドウを閉じることができないようにすることはできますか?

  16. 16

    Pythontkinterですべてのウィンドウを閉じる

  17. 17

    Pythonでwin32guiを使用してハンドル付きのウィンドウを閉じるにはどうすればよいですか

  18. 18

    Android Webview:スクリプトは、スクリプトによって開かれたウィンドウのみを閉じることができます

  19. 19

    Firefox Developer EditionのDOMプロパティウィンドウをどのように閉じますか?

  20. 20

    Electronを使用するときにすべてのアプリウィンドウを閉じる

  21. 21

    AppleScriptで特定のターミナルウィンドウをターゲットにして閉じるにはどうすればよいですか?

  22. 22

    新しいウィンドウを閉じるまで元のウィンドウを使用できないように、electron jsで新しいウィンドウを作成するにはどうすればよいですか?

  23. 23

    JavaでSelenium WebDriverを使用して特定のウィンドウを閉じるにはどうすればよいですか?

  24. 24

    tkinterでウィンドウを閉じる前に特定のコマンドを実行します

  25. 25

    vimの現在のタブでのみすべてのウィンドウを閉じるにはどうすればよいですか?

  26. 26

    両方を閉じずに2つのウィンドウを開いているGUIの1つのウィンドウをどのように閉じますか?

  27. 27

    Windowsコマンドコンソールを閉じたときにtkinterウィンドウが閉じないようにする方法

  28. 28

    ウィンドウオブジェクトがカプセル化されている場合、どのようにpython-tkinterウィンドウを閉じますか?

  29. 29

    Python3を介してSeleniumとWebDriverを使用してタブを切り替えているときに、「NoSuchWindowException:そのようなウィンドウはありません:ウィンドウはすでに閉じられています」

ホットタグ

アーカイブ