2016-05-14 22 views
-1

Was ich will, ist auf meinen Computer schläft nach etwa 10 Sekunden zu machen, aber ich möchte es eine Nachricht haben, mit einer Taste abbrechenWie führe ich einen Befehl nach einiger Zeit aber mit einer Löschtaste

das ist, was ich versucht:

dies mit tkinter meine Warnung:

from tkinter import * 
import ctypes 

def callback(): 
quit() 


root = Tk() 
root.geometry("400x268") 
root.title("Alert") 
root.configure(background='light blue') 



label = Label(root, text="ALERT this device will go to sleep soon!", fg="red") 
label.config(font=("Courier", 12)) 
label.configure(background='light blue') 
quitButton = Button(root, text="do not sleep!", command=callback) 
quitButton.pack() 
quitButton.place(x=150, y=150) 


label.pack() 
root.mainloop() 

ich brauche es, bis der Schlaf (diesen Befehl) zu zählen zurück:

import time 
import os 

os.system("Powercfg -H OFF") 
os.system("rundll32.exe powrprof.dll,SetSuspendState 0,1,0") 

aber wenn ich die Taste Abbrechen drücken, wird es stoppen und nichts

+0

welcher Teil des Problems kämpfen Sie mit? Kennen Sie den 'After'-Befehl? –

+0

Ich weiß, wie die Alert-Sache (die erste) zu tun, und ich weiß, wie die Schlaf-Funktion ich muss das Programm Countdown von 10 oder etwas und wenn es 0 erreicht, ohne dass jemand die Abbrechen-Taste drücken wird geh schlafen (der zweite Code) –

Antwort

0

Sie können after Methode passieren wird. after(DELAY_MS, CALLBACK=None, *args). Etwas wie das:

from tkinter import * 
import ctypes, os 

def callback(): 
    active.set(False) 
    #root.destroy()   # Uncoment this to close the window 

def sleep(): 
    if not active.get(): return 
    root.after(1000, sleep) 
    timeLeft.set(timeLeft.get()-1) 
    timeOutLabel['text'] = "Time Left: " + str(timeLeft.get()) #Update the label 
    if timeLeft.get() == 0:          #sleep if timeLeft = 0 
     os.system("Powercfg -H OFF") 
     os.system("rundll32.exe powrprof.dll,SetSuspendState 0,1,0") 
     callback() 

root = Tk() 
root.geometry("400x268") 
root.title("Alert") 
root.configure(background='light blue') 

timeLeft = IntVar() 
timeLeft.set(10)   # Time in seconds until shutdown 

active = BooleanVar() 
active.set(True)   # Something to show us that countdown is still going. 

label = Label(root, text="ALERT this device will go to sleep soon!", fg="red") 
label.config(font=("Courier", 12)) 
label.configure(background='light blue') 
label.pack() 
timeOutLabel = Label(root, text = 'Time left: ' + str(timeLeft.get()), background='light blue') # Label to show how much time we have left. 
timeOutLabel.pack() 
quitButton = Button(root, text="do not sleep!", command=callback) 
quitButton.pack() 
quitButton.place(x=150, y=150)  

root.after(0, sleep) 
root.mainloop() 
+0

vielen Dank es funktioniert perfekt kann ich dich fragen, wo hast du Python gelernt, wenn es eine Website kann yo bitte gib mir den Link und wenn es ein Buch ist, kannst du mir einen Namen danke trotzdem ! –

+0

Gern geschehen. Es ist nur eine kleine Erfahrung. Dieser Code ist bei weitem nicht perfekt, aber wenn es funktioniert ... –

+0

hey dude Ich habe ein Problem Ich muss warten, um diese Frage zu stellen und um ehrlich zu sein, ich möchte nicht wirklich warten, aber ich möchte eine Konfigurationsdatei für Dieses Skript und ich kann es einfach nicht funktionieren Ich schaute auf das Tutorial in der Python-Website Können Sie mir nur ein besseres bitte ich bin wirklich leid, ich weiß einfach nicht, was jetzt zu tun ist –