tkcalendar: Использование календаря для просмотра данных о температуре. (Raspberry Pi)

Я совсем новичок в программировании, и мне поставили задачу создать программу обзора температуры. Я решил создать календарь, чтобы легко просматривать каждый месяц. Каждый день в месяце, который я просматриваю, следует читать текстовый файл за определенный день. Он должен подсчитывать строки, которые там были сделаны, и подсчитывать определенное значение и выше, чтобы получить процент. С этим процентом мы могли бы добавить красный цвет на фоне определенного дня. При щелчке должна открыться графическая программа именно с этим файлом, который я уже запрограммировал

Теперь я застрял на том, что программа должна найти те дни, которые я просматриваю, чтобы начать читать текстовые файлы для расчета «красного» цвета.

Вот код на данный момент:

PS: Мои знания в области кодирования основаны примерно на 4 днях...

from tkinter import *
from tkcalendar import *
import tkcalendar
import tkinter
from tkinter import messagebox
from datetime import date                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               


#root =Tk()

def cal_func():
    def calval():
        de = DateEntry
        tag = 1
        counter = 0
        for i in range(1, 31):
            #??????
            counter + 1

    cal = Calendar(
        background="grey",
        normalbackground="white",
        font="Arial 20",
        weekendbackground="lightgray",
        selectmode="day",
        year=date.today().year,
        month=date.today().month,
        day=date.today().day
    )

    cal.pack(expand=True, fill="both")
    btn3 = Button(text="Aktualisieren", command=calval)
    btn3.pack()

cal_func()

mainloop()

person JymaXx    schedule 24.02.2020    source источник
comment
Отвечает ли это на ваш вопрос? Как получить выбранную дату для DateEntry в tkcalendar (Питон)?   -  person stovfl    schedule 24.02.2020
comment
Плохо нет, я нашел эту ветку ранее сегодня и попробовал эти функции, проблема в том, что мне нужно получить не одну дату, она должна быть автоматизирована, а не пользовательская функция, чтобы читать файлы для конкретной даты . Может быть, моя просьба особенная, я думаю...   -  person JymaXx    schedule 24.02.2020
comment
мой запрос относится к особым ... должен быть автоматизирован: у вас есть Button, то есть на основе пользователя ? Откуда вы взяли data? Вы хотите противоположное tkinter-tkcalendar-to-display-events   -  person stovfl    schedule 24.02.2020
comment
Возможно, вы сможете найти то, что ищете, в документе tkcalendar.readthedocs. io/en/stable/: существует виртуальное событие <<CalendarSelected>>, которое запускается, когда пользователь выбирает дату, поэтому вы можете связать функцию для отображения всех ваших данных при нажатии дня.   -  person j_4321    schedule 24.02.2020


Ответы (1)


Вы хотите знать, когда пользователь выбирает день для отображения соответствующих данных. Это возможно через привязки. Событие <<CalendarSelected>> запускается каждый раз, когда выбирается новый день. Таким образом, вы можете привязать функцию к этому событию. В этой функции (display_day() в приведенном ниже коде) вы можете получить выбранный день с помощью get_date() или selection_get(), а затем загрузить данные из файла и отобразить график.

import tkcalendar
import tkinter as tk
from tkinter import ttk

def display_day(event):
    day = cal.get_date() # you can use cal.selection_get() to get the date
                         # as a datetime.date
    display.configure(text=f"Selected day is {day}")  # replace by your code to load data 
                                                      # and display graph

root = tk.Tk()
cal = tkcalendar.Calendar(root, background="grey", normalbackground="white",
                          font="Arial 20",
                          weekendbackground="lightgray",
                          selectmode="day")
cal.pack()
display = ttk.Label(root, text="Selected day is ")
display.pack()
cal.bind("<<CalendarSelected>>", display_day)
root.mainloop()
person j_4321    schedule 25.02.2020