Python приложение времени, когда не работает tkinter - PullRequest
0 голосов
/ 03 февраля 2020

Я пытался сделать базовое c приложение времени, но оно не работает. Если вы запустите его, отобразится gui, кнопка «нет» работает (при закрытии окна). Но кнопка «да» не создает всплывающее окно, сообщающее вам время.

from tkinter import Tk, Label, Button
from datetime import datetime

LARGE_FONT = ("Verdana", 12)
NORM_FONT = ("Helvetica", 10)
SMALL_FONT = ("Helvetica", 8)


class CurrentTime:
    def __init__(self, master):
        self.master = master
        master.title("Current Time")

        self.label = Label(master, text="Do you want to know the current time? Y/N", font=LARGE_FONT)
        self.label.pack(side="top", fill="x", pady=10, padx=11)

        self.time_button = Button(master, text="Yes", command=self.thetime, font=NORM_FONT)
        self.time_button.pack(side="top", fill="x", pady=10, padx=11)

        self.close_button = Button(master, text="No", command=master.quit, font=NORM_FONT)
        self.close_button.pack(side="top", fill="x", pady=10, padx=11)

    def thetime(self, master):
        now = datetime.now()
        current_time = now.strftime("%H:%M:%S")
        master.tile("Current Time")
        self.label = Label(master, text="Current Time =", command=current_time, font=LARGE_FONT)
        self.label.pack(side="top", fill="x", pady=10)
        self.close_button = Button(master, text="Okay", command=master.quit, font=NORM_FONT)
        self.close_button.pack(side="top", fill="x", pady=10, padx=11)


root = Tk()
yes = CurrentTime(root)
root.mainloop()

Спасибо за помощь!

1 Ответ

0 голосов
/ 03 февраля 2020

У вас есть дополнительный аргумент master в def thetime(self, master). Уберите лишний аргумент. Также вам не нужно воссоздавать self.label и self.close_button в функции, достаточно просто обновить их text:

def thetime(self):
    self.time_button.destroy()  # remove the 'Yes' button
    current_time = datetime.now().strftime("%H:%M:%S")
    self.label.config(text="Current Time = "+current_time) # show the current time
    self.close_button.config(text="Okay") # change close_button text to 'Okay'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...