Ein Lüftungsprogramm in Python
- vent.pyw
import datetime
import threading
import time
import tkinter
import winsoundwindow = tkinter.Tk()
exiting = Falsedef on_closing( event=None ):
global exiting
exiting = True
window.destroy()window.protocol( "WM_DELETE_WINDOW", on_closing )
bar = tkinter.Menu( window )
menu = tkinter.Menu( bar, tearoff=0 )
menu.add_command( label="Windows have been opened", command=lambda:windows_have_been_opened() )
bar.add_cascade( label="Windows", menu=menu )
window.config( menu=bar )def timer_function():
global running
running = True
label=tkinter.Label(window )
label.grid( row=0, column=0 )
base_time = datetime.datetime.now( datetime.timezone.utc )
while not exiting:
current_time = datetime.datetime.now( datetime.timezone.utc )
dt =( current_time - base_time ).seconds/60
label['text'] = str(dt)
if dt > wait_time:
# if wait_time == 20:
window.attributes('-fullscreen', True)
window.lift()
window.attributes('-topmost', 1)
window.attributes('-topmost', 0)
window.focus_force()
window.bell()
winsound.Beep( 1000, 100 );winsound.Beep( 1000, 100 );winsound.Beep( 1000, 100 );winsound.Beep( 1000, 100 );winsound.Beep( 1000, 100 )
# else: winsound.Beep( 440, 500 ); winsound.Beep( 440, 500 ); winsound.Beep( 440, 500 )
# base_time = datetime.datetime.now( datetime.timezone.utc )
time.sleep( 1 )
running = False
def terminate_current_thread():
global exiting
global running
try:
running
except NameError:
running = False
while running:
exiting = True
winsound.Beep( 500, 100 )
time.sleep( 1 )
exiting = False
def windows_have_been_opened():
global wait_time
winsound.Beep( 500, 100 )
terminate_current_thread()
assert not running
assert not exiting
wait_time = 20
timer_thread = threading.Thread( target=timer_function )
timer_thread.start()
tkinter.mainloop()