首页 > 解决方案 > python倒数计时器问题(不起作用)

问题描述

我用 tkinter 做了一个倒数计时器。但是,当插入“if (state):”时,不显示计时器。我想在最初未启动时显示计时器。还有一个问题是停止按钮在运行过程中不起作用。

对不起我的英语

我删除了“if(state):”和“state = False”。然后显示计时器,但它从头开始。

import tkinter as tk
import time
from tkinter import *


root = tk.Tk()
root.title("Timer")
root.geometry("980x640")

sec = 100


def main():
     if (state):
        for x in range(sec, -1, -1):
             lbl1["text"] = str(formatTime(x))
             root.update()
             time.sleep(1)

def formatTime(x):
    minutes, seconds_rem = divmod(x, 60)
    return "%02d:%02d" % (minutes, seconds_rem)


def start():
    global state
    state = True

def stop():
    global state
    state = False

def reset():
    global sec
    sec = 1800

def add1min():
    global sec
    sec += 60

def rm1min():
    global sec
    if sec > 60:
       sec -= 60

state = False


startButton = tk.Button(root, text='Start', command=start)
startButton.pack(fill = 'x', padx=30, side = 'left')
startButton.pack()

stopButton = tk.Button(root, text='Stop', command=stop)
stopButton.pack(fill = 'x', padx=30, side = 'left')
stopButton.pack()

resetButton = tk.Button(root, text='Reset', command=reset)
resetButton.pack(fill = 'x', padx=30, side = 'left')
resetButton.pack()

add1minButton = tk.Button(root, text='+1 min', command=add1min)
add1minButton.pack(fill = 'x', padx=30, side = 'left')
add1minButton.pack()


rm1minButton = tk.Button(root, text='-1 min', command=rm1min)
rm1minButton.pack(fill = 'x', padx=30, side = 'left')
rm1minButton.pack()


lbl1 = Label()
lbl1.pack(fill=BOTH, expand=1)
main()
root.mainloop()

没有错误代码

标签: pythonpython-3.xtkinter

解决方案


Start()直到你进入你的函数之后,你才会进入你的函数main(),所以你的函数不会显示你的计时器。按下按钮后尝试再次调用。stateFalsemain()main()


推荐阅读