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

2024-04-24 18:51:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望你能帮我解决这个问题。。你知道吗

我有以下代码:

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()

我按下开始按钮,进度条开始,按钮文本变为“退出”,当进度条满(5秒)时结束(程序关闭)

我怎么能按“退出”关闭程序呢?(不等待吧台填满)

我希望你能帮助我! 谢谢您!你知道吗


Tags: textimportmastertimedefcolumnstartcommand
1条回答
网友
1楼 · 发布于 2024-04-24 18:51:20

试试这个:

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()

编辑

变量名已修复。你知道吗

相关问题 更多 >