Как отобразить время и дату библиотеки RTC DS1302 в окне tkinter с помощью Raspberry Pi - PullRequest
1 голос
/ 07 апреля 2019

Я новенький, у меня есть сомнения. Я использую библиотеку RTC_DS1302, чтобы получить время ПК и сохранить его в RTC DS1302, используя Raspberry Pi. У меня вопрос, как показать время и дату в окне tkinter и обновлять их каждый раз, когда меняются время и дата, я не смог этого сделать. Я оставляю код, с которым я получаю время и дату. По этой ссылке вы можете найти библиотеку.

https://github.com/ksaye/IoTDemonstrations/blob/master/RTC_DS1302/RTC_DS1302.py

Это код

import RTC_DS1302
import os
import time

ThisRTC = RTC_DS1302.RTC_DS1302()

Data = ThisRTC.ReadRAM()
print("Message: " + Data)
DateTime = { "Year":0, "Month":0, "Day":0, "DayOfWeek":0, "Hour":0, "Minute":0, "Second":0 }
Data = ThisRTC.ReadDateTime(DateTime)

print("Date/Time: " + Data)
print("Year: " + format(DateTime["Year"] + 2000, "04d"))
print("Month: " + format(DateTime["Month"], "02d"))
print("Day: " + format(DateTime["Day"], "02d"))
print("DayOfWeek: " + ThisRTC.DOW[DateTime["DayOfWeek"]])
print("Hour: " + format(DateTime["Hour"], "02d"))
print("Minute: " + format(DateTime["Minute"], "02d"))
print("Second: " + format(DateTime["Second"], "02d")) 

ThisRTC.CloseGPIO()

1 Ответ

0 голосов
/ 07 апреля 2019

tkinter имеет функцию after(time_in_ms, function_name), которая позволяет запускать функцию с задержкой.В этой функции вы можете обновить текст в Labels и выполнить after(time_in_ms, function_name), чтобы через некоторое время запустить ту же функцию.

Пример использования after() для отображения текущего времени

import tkinter as tk # Python 3.x
from datetime import datetime


def update_time():
    # update displayed time
    current_time = datetime.now()
    current_time_str = current_time.strftime('%Y.%m.%d  %H:%M:%S')
    label['text'] = current_time_str

    # run update_time again after 1000ms (1s)
    root.after(1000, update_time)

# --- main ---

root = tk.Tk()

label = tk.Label(root)
label.pack()

update_time()

root.mainloop()

Больше моих примеров с after ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...