【问题标题】:I am trying to execute an alarm function in tkinter but it is not working properly我正在尝试在 tkinter 中执行警报功能,但它无法正常工作
【发布时间】:2020-07-10 08:03:52
【问题描述】:

我正在尝试在 tkinter 中执行函数,因为我希望函数在后台运行我已经完成了以下代码。我也试图在一个while循环中执行它,但它没有循环。

t1 = dt.time(hour = 13, minute= 24)
t2 = dt.time(hour= 13, minute= 4)
timetable = [t1, t2]
root = Tk() 

def Alarm():
      current_time = now_time.strftime("%H:%M:%S")
      print(current_time)
      print(timetable[0])
      while True:
            if timetable[0] <= dt.datetime.now().time():
                print("Its time")
            break
Alarm()
root.mainloop()

打印语句仅用于测试。我在闹钟中使用的逻辑也没有正确执行,因为即使时间过去了,它也会告诉“它的时间”。我之前尝试过以下方法。

方法一:

for i in reversed(timetable):
    i_time = i
    #print (i_time)
    #print(now_time.strftime("%H:%M"))
    while True:
        if dt.datetime.now().time() < i_time:
        #if i_time <= dt.datetime.now().time():
            print("Its Time")
            break

方法二:

for i in timetable:
    current_time = dt.datetime.now().time()
    alarm_time = i
    while True:
        if current_time < alarm_time:
            if current_time <= alarm_time:
                print("its time", alarm_time)

使用 for 循环是我的第一个目标,但 for 循环没有正确执行。它只获得第一个元素并且即使第一个元素已经通过也不会进入第二个元素所以我决定使用 if,elif,else 语句

【问题讨论】:

    标签: python list if-statement tkinter


    【解决方案1】:

    您可以使用after 方法在经过一定时间后运行函数。您应该使用它而不是创建循环。

    您只需将闹钟时间转换为毫秒数,然后使用它在给定时间响铃。例如,要在一小时内响起闹钟,您可以这样做:

    def ring_alarm():
        print("Its time")
    delay = 60 * 60 * 1000  # 60 min/hour, 60 secs/min, 1000ms/sec
    root.after(delay, ring_alarm)
    

    【讨论】:

      【解决方案2】:

      我将使用 if..else 响应来执行警报

      current_time = dt.datetime.now().time()
              if timetable[0] == current_time:
                    
                    print("Its time")
                    break
      

      我在错误的地方打破了 While 循环,并且我的最后一个错字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-28
        • 2017-09-11
        • 1970-01-01
        • 2018-11-03
        相关资源
        最近更新 更多