Как открыть окно Tkinter, когда пользователь бездействует? - PullRequest
0 голосов
/ 18 октября 2018

Я хотел бы построить программу на 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() 
...