Tkinterプログラムを終了するにはどうすればよいですか?私がこのコードを持っているとしましょう:
from Tkinter import *
def quit():
# code to exit
root = Tk()
Button(root, text="Quit", command=quit).pack()
root.mainloop()
quit
アプリケーションを終了する関数をどのように定義する必要がありますか?
回答:
destroy()
tkinterウィンドウを閉じるために使用する必要があります。
from Tkinter import *
root = Tk()
Button(root, text="Quit", command=root.destroy).pack()
root.mainloop()
説明:
root.quit()
上記の行はバイパスするだけです。root.mainloop()
つまりroot.mainloop()
、quit()
コマンドが実行された場合でもバックグラウンドで実行されます。
root.destroy()
destroy()
コマンドが消える間、root.mainloop()
すなわちroot.mainloop()
停止します。
だから、あなたはちょうどあなたが使用する必要がありますので、プログラムを終了したいとroot.destroy()
、それはそれは停止しますようmainloop()
。
ただし、無限ループを実行したいが、Tkウィンドウを破棄したくない場合や、root.mainloop()
行の後にコードを実行したい場合は、を使用する必要がありますroot.quit()
。例:
from Tkinter import *
def quit():
global root
root.quit()
root = Tk()
while True:
Button(root, text="Quit", command=quit).pack()
root.mainloop()
#do something
quit
と、すべてのウィジェットが破棄されます。ウィジェットが破棄された場合、mainloop
終了します。
Tkinterの終了機能を間違って理解されたと思います。この関数を定義する必要はありません。
まず、関数を次のように変更する必要があります。
from Tkinter import *
root = Tk()
Button(root, text="Quit", command=root.quit).pack()
root.mainloop()
次に、「。pyw」サフィックスを使用してこのファイルを保存し、「。pyw」ファイルをダブルクリックしてGUIを実行する必要があります。今回は、ボタンをクリックするだけでGUIを終了できます。不快なDOSウィンドウはありません。(「.py」ファイルを実行すると、quit関数は失敗します。)
次を使用できます。
root.destroy()
または
root.quit()
それが機能しない場合は、rootをプログラムの開始時に変数があったものに変更します
import tkinter
main = Tk()
main.destroy()
main.mainloop
最も簡単な方法は、赤いボタン(macOSでは左端、Windowsでは右端)をクリックすることです。特定の関数をボタンウィジェットにバインドする場合は、次のようにすることができます。
class App:
def __init__(self, master)
frame = Tkinter.Frame(master)
frame.pack()
self.quit_button = Tkinter.Button(frame, text = 'Quit', command = frame.quit)
self.quit_button.pack()
または、もう少し複雑にするには、プロトコルハンドラーとdestroy()
メソッドを使用します。
import tkMessageBox
def confirmExit():
if tkMessageBox.askokcancel('Quit', 'Are you sure you want to exit?'):
root.destroy()
root = Tk()
root.protocol('WM_DELETE_WINDOW', confirmExit)
root.mainloop()
def quit1():
root.destroy()
Button(root, text="Quit", command=quit1).pack()
root.mainloop()
import sys
from Tkinter import *
def quit():
sys.exit()
root = Tk()
Button(root, text="Quit", command=quit).pack()
root.mainloop()
あなたが求めていることをする必要があります。
Tkinterウィンドウの終了には以下のコードを使用します。
from tkinter import*
root=Tk()
root.bind("<Escape>",lambda q:root.destroy())
root.mainloop()
または
from tkinter import*
root=Tk()
Button(root,text="exit",command=root.destroy).pack()
root.mainloop()
または
from tkinter import*
root=Tk()
Button(root,text="quit",command=quit).pack()
root.mainloop()
または
from tkinter import*
root=Tk()
Button(root,text="exit",command=exit).pack()
root.mainloop()
以下のコードスニペット。私は小さなシナリオを提供しています。
import tkinter as tk
from tkinter import *
root = Tk()
def exit():
if askokcancel("Quit", "Do you really want to quit?"):
root.destroy()
menubar = Menu(root, background='#000099', foreground='white',
activebackground='#004c99', activeforeground='white')
fileMenu = Menu(menubar, tearoff=0, background="grey", foreground='black',
activebackground='#004c99', activeforeground='white')
menubar.add_cascade(label='File', menu=fileMenu)
fileMenu.add_command(label='Exit', command=exit)
root.config(bg='#2A2C2B',menu=menubar)
if __name__ == '__main__':
root.mainloop()
ここに空白のウィンドウを作成し、同じウィンドウ(ルートウィンドウ)にファイルメニューオプションを追加しました。ここでは、オプションexitを1つだけ追加します。
次に、rootに対してmainloopを実行するだけです。
一度やってみてください
簡単な1行の答えがあります:
exit()
コマンドに-を書き込む
それでおしまい!
raise SystemExit
これは最初の試行で機能しました。
self.destroy()
root.destroy()
しなかった
これを試して:
from Tkinter import *
import sys
def exitApp():
sys.exit()
root = Tk()
Button(root, text="Quit", command=exitApp).pack()
root.mainloop()
これを試して。
self.parent.destroy()
self.parent.quit()
たぶんあなたはあなたがしたフレームにパラメータのようなルートを送るでしょう。それで、あなたがそれを終えたいならば、あなたはあなたの父に電話をしなければなりません。そうすれば彼は彼の子供たちの一人一人を閉じる代わりにそれをすべて閉じることができます。