class HistoryWindow(Toplevel): def __init__(self, root): Toplevel.__init__(self, root) self.title("History [Money Timer]") self._cal = Calendar(self) self._cal.pack() self._dateLabel = Label(self) self._dateLabel.pack() self._timeLabel = Label(self) self._timeLabel.pack() for entry in self.master.history: self._cal.add_day_action(year = entry["year"], month = entry["mon"] - 1, day = entry["day"], action = self._show_day) def _show_day(self, year, month, day): print("Entry {}-{}-{} showing.".format(year, month +1, day)) entry = None for item in self.master.history: if item["year"] == year and item["mon"] == month + 1 and item["day"] == day: entry = item break if entry == None: return monStr = str(entry["mon"]) if entry["mon"] >= 10 else "0" + str(entry["mon"]) dayStr = str(entry["day"]) if entry["day"] >= 10 else "0" + str(entry["day"]) wDayStr = entry["wday"] + " "*(5-len(entry["wday"])) if 5 - len(entry["wday"]) > 0 else entry["wday"] intHr = int(entry["secSoFar"] // 3600) intMin = int(entry["secSoFar"] % 3600 // 60) intSec = int(entry["secSoFar"] % 60) strMin = str(intMin) if intMin >= 10 else "0" + str(intMin) strSec = str(intSec) if intSec >= 10 else "0" + str(intSec) earningsStr = "{:.2f}".format(entry["earnings"]) earningsStr += " "*(7 - len(earningsStr)) if ((7 - len(earningsStr)) > 0) else earningsStr self._dateLabel.config(text="{}-{}-{}\t{}".format(entry["year"],monStr,dayStr, wDayStr)) self._timeLabel.config(text="{}:{}:{}\t${}\t{:.1f}%".format(intHr, strMin, strSec, earningsStr, entry["percent"])) def destroy(self): self.master.historyOpen = False super().destroy()