简体   繁体   English

如何通过按下按钮关闭程序?

[英]How to close the program by pressing button?

I hope you can help me with this problem.. 希望您能帮我解决这个问题。

I have the following code: 我有以下代码:

from Tkinter import *
import ttk
import time

def start():
    start_stop.config(text="QUIT", command=stop)
    for i in xrange(5):
        pbar_det.step(19.99)
        master.update()
        # Busy-wait
        time.sleep(1)
    master.quit()

def stop():
    master.quit()

master = Tk()

start_stop = Button(master, text='START', command=start)
start_stop.grid(row=0, column=1, pady=2, padx=2, sticky=E+W+N+S)

pbar_det = ttk.Progressbar(master, orient="horizontal", length=600, mode="determinate")
pbar_det.grid(row=0, column=0, pady=2, padx=2, sticky=E+W+N+S)

master.mainloop()

I press the start button and the progress bar starts, the button text changes to "QUIT" and ends (and the program is closed) when the bar is full (five seconds) 我按下开始按钮,进度条开始,进度条已满(五秒钟)时,按钮文本变为“ QUIT”并结束(并且程序已关闭)

How I can do so that pressing "QUIT" close the program at that time? 我该如何做才能在那时按下“退出”关闭程序? (not waiting for the bar fills) (不等待栏填充)

I hope you can help me! 我希望你能帮帮我! Thank you! 谢谢!

Try this: 尝试这个:

from Tkinter import *
import ttk
import time
import threading

def start():
    start_stop.config(text="QUIT", command=stop)
    thread = threading.Thread(target=progBar, args=())
    thread.daemon = True
    thread.start()

def progBar():
    for i in xrange(5):
        pbar_det.step(19.99)
        master.update()
        # Busy-wait
        time.sleep(1)
    master.quit()

def stop():
    master.quit()

master = Tk()

start_stop = Button(master, text='START', command=start)
start_stop.grid(row=0, column=1, pady=2, padx=2, sticky=E+W+N+S)

pbar_det = ttk.Progressbar(master, orient="horizontal", length=600, mode="determinate")
pbar_det.grid(row=0, column=0, pady=2, padx=2, sticky=E+W+N+S)

master.mainloop()

Edit 编辑

Variable name fixed. 变量名固定。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM