我想用Python构建类似于屏幕保护程序行为的程序,但是我不确定如何实现检查用户不活动多长时间并仅在达到特定值时打开Tkinter窗口的部分。我想在用户登录时启动此python脚本,使其在后台运行,并且仅在用户闲置一分钟后才打开Tkinter窗口。
我有Tkinter主窗口,但是我不确定在哪里放置循环(?)来检查自上次用户活动以来的时间,或者也许我应该以某种方式在最后使用现有的mainloop?
这是我的获取空闲时间值的代码:
def getIdleTime():
last_active = win32api.GetLastInputInfo()
now = win32api.GetTickCount()
elapsed_seconds = (now - last_active)/1000
在我的代码中的某个地方,我需要继续检查经过的秒数,当秒数达到60时,打开Tk窗口。
我的Tkinter程序看起来像这样:
import tkinter as tk
import random
import pandas as pd
import os
import win32api
#some functions
# --- main ---
root = tk.Tk()
root.attributes('-fullscreen', True)
root.bind("<Return>",change_text_on_click)
root.bind("<Escape>",screen_exit)
c = tk.Canvas(root, bg='black')
c.pack(expand=1, fill=tk.BOTH)
w = c.create_text(
400, 500,
anchor=tk.CENTER,
font=("Calibri",70),
fill='white',
width=root.winfo_screenwidth()*0.8,
text='' # empty string populated by change_text function
)
# set first text
change_text()
root.mainloop()