【问题标题】:Python time app, with tkinter not workingPython时间应用程序,tkinter不工作
【发布时间】:2020-02-03 01:45:27
【问题描述】:

我尝试制作一个基本的时间应用程序,但是它不起作用。如果你运行它,它会显示 gui,no 按钮起作用(通过关闭窗口)。但是,“是”按钮不会创建一个弹出窗口来告诉您时间。

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()

感谢您的帮助!

【问题讨论】:

  • 如果你在控制台运行它,你会得到missing 1 required positional argument: 'master'的异常。从def thetime(self, master) 中删除参数master 并在函数内使用self.master 而不是master
  • 还是不行
  • 这是因为您的代码中还有其他问题。查看控制台中的错误信息,并一一解决。
  • 有问题的代码可能只有“thetime”函数,其余代码我复制并编辑。

标签: python button tkinter time


【解决方案1】:

def thetime(self, master) 中有额外的参数 master。删除多余的参数。另外你不需要在函数中重新创建self.labelself.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'

【讨论】:

  • 非常感谢!感谢您让我明白我的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多