2017-08-30 7 views
0

タイトルの質問をどのようにフレーズするか正確にはわかりませんが、正確にやってみることは時間を入力することですその時Pythonスクリプトを実行するTkinterのウィジェット。プログラム可能なコーヒーメーカーを想像して、それは私が作成しようとしている正確な機能です。TkinterとPythonで特定のイベントが発生する時間を入力するテキストボックスを作成します

ここでは、単純に何かをオンまたはオフにするための基本コード(プログラム自体ではない)があります。どのように私はそれがGUIで入力することができます設定された時間にオンにするコードですか?

私はGoogleを検索しようとしましたが、質問を正しく表現しているかどうかはわかりませんが、申し訳ありませんが、私はノブです。

from tkinter import * 
import tkinter.font 
from gpiozero import LED 
import RPi.GPIO 
import time 

RPi.GPIO.setmode(RPi.GPIO.BCM) 

led=LED(4) 

win = Tk() 
win.title("LED Toggler") 
myFont = tkinter.font.Font(family = 'Helvetica', size = 12, weight = 
"bold") 

def ledToggle(): 
    if led.is_lit: 
     led.off() 

    else:  
     led.on()   
     time.sleep(3) 
     led.off() 

def close(): 
    RPi.GPIO.cleanup() 
    win.destroy() 

ledButton = Button(win, text='GPIO ON', font=myFont, 
command=ledToggle, fg='black', bg='green', height=1, width=10) 
ledButton.grid(row=1,column=1) 

exitButton = Button(win, text='Exit', font=myFont, command=close, 
bg='red', height=1, width=6) 
exitButton.grid(row=2, column=1) 

win.protocol("WM_DELETE_WINDOW", close) 

win.mainloop() 
+1

Tkinterでは '睡眠を()'を使用しないでください。代わりに 'after()'を使用してください。その理由は、sleepとwaitの両方が、単に何かのためのタイマーを提供するのではなく、tkinterプログラム全体を一時停止させるからです。 –

答えて

0
import time 
# you can input a string like this in the gui 
gui_time = 'Wed Aug 30 18:20:01 2017' 

# this gives you the number of seconds from now until the time you specified 
ETA = time.mktime(time.strptime(gui_time))-time.time() 
# convert to milliseconds 
mETA = int(ETA*1000) 
win.after(mETA,ledToggle) 
関連する問題