root1 = tkinter.Tk() root1.withdraw() root1.geometry('800x200') if now2 in ti:#当当天时间是计划开始时间的列表里 root1.after(1000, tishi)#启动弹框信息 def createTimer():#因为第一次启动需要间隔时间,所以以上代码是手工第一次检查当前时间是否是计划开始时间 t = threading.Timer(10, repeat)#threading.Timer为定时方法(间隔时间(以秒为单位),所要执行的函数) t.start() def repeat():#重复上面的操作,获取当前时间与计划开始时间的列表进行匹配 createTimer() now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') now1 = datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S') now2 = str(now1).split(' ')[0] print(now2) if now2 in ti: root1.after(1000, tishi) createTimer() root1.mainloop()怎样停止 threading.timer
时间: 2024-03-18 21:42:11 浏览: 41
要停止 `threading.Timer`,可以使用 `cancel()` 方法来取消定时器。在你的代码中,需要在 `repeat()` 函数中添加一个判断条件,以便在需要时可以取消定时器。例如:
```python
def repeat():
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
now1 = datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S')
now2 = str(now1).split(' ')[0]
print(now2)
if now2 in ti:
root1.after(1000, tishi)
else:
t.cancel() # 如果不是计划开始时间,取消定时器
```
在这个修改后的代码中,如果当前时间不在计划开始时间列表中,定时器将被取消。这将防止定时器无限期地运行下去。
相关问题
from tkinter import filedialog import tkinter root = tkinter.Tk() root.withdraw()
这段代码使用了Python的tkinter库中的filedialog模块,用于创建打开/保存文件对话框。其中,root = tkinter.Tk()创建了一个Tkinter.Tk()实例,而root.withdraw()则是将该实例隐藏起来,不显示在程序窗口中。这通常是因为代码中并不需要显示该实例,它只是用于提供一个Tkinter环境来运行filedialog模块。
需要注意的是,如果不加上root = tkinter.Tk()和root.withdraw()这两行代码,可能会在文件对话框中出现一个空白的Tkinter窗口。因此在使用filedialog模块前,需要先创建一个Tkinter实例并将其隐藏起来。
范例:从tkinter中导入filedialog模块,并创建root实例并隐藏起来
```python
from tkinter import filedialog
import tkinter
root = tkinter.Tk() # 创建一个Tkinter.Tk()实例
root.withdraw() # 将Tkinter.Tk()实例隐藏
```
root1 = tkinter.Tk() #创建tkingter窗口 root1.title('登录') #标题 root1['height'] = 110 root1['width'] = 270 root1.resizable(55,55)我想在这个基础上增加一个页面出现的位置,怎么实现
你可以使用 `geometry()` 方法来设置窗口的位置。该方法需要传递一个字符串参数,该字符串的格式为 `宽度x高度+水平偏移量+垂直偏移量`。例如,如果你想让窗口在屏幕正中央出现,可以这样修改你的代码:
```python
root1 = tkinter.Tk() #创建tkinter窗口
root1.title('登录') #标题
root1.geometry('270x110+{}+{}'.format((root1.winfo_screenwidth()-270)//2, (root1.winfo_screenheight()-110)//2)) #设置窗口尺寸和出现位置
root1.resizable(55,55) #设置窗口大小是否可以调整
```
其中,`winfo_screenwidth()` 和 `winfo_screenheight()` 方法可以获取屏幕的宽度和高度。通过这两个方法和窗口的尺寸计算出窗口在屏幕上的水平和垂直偏移量,就可以实现窗口在屏幕正中央出现的效果。