python - 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()
没有错误代码
解决方案
Start()
直到你进入你的函数之后,你才会进入你的函数main()
,所以你的函数不会显示你的计时器。按下按钮后尝试再次调用。state
False
main()
main()
推荐阅读
- intellij-idea - PhpStorm 中的 IdeaVim - 搜索实例的侧边栏“缺口”?
- python-3.x - TypeError:获取参数 None 的类型无效
在 tf.reduce_max(pred, axis=1).eval() - google-cloud-platform - 如何通过 python 客户端库启用 GCP API?
- regex - 在分隔符之间使用 CLRF 更正 .csv 文件
- file - 使用 Python 3.6 解析、编辑和保存 dhcpd.conf 文件
- java - ReactJS 和 Java:对预检请求的响应未通过访问控制检查
- angular - 从 API 值更改字体颜色时出现角度错误
- docker - 由于端口限制,无法构建 dockerfile
- linux - noob - 语法错误:重定向意外
- neo4j - 是否可以在关系 NEO4J 上创建约束?