tkinter 字体中没有属性“调用”错误

dee*_*pak 6 python exception tkinter

我使用devoloping一个桌面应用程序的Tkinter。设置字体引发异常。

tmp.py

def main(root):
    frame = Frame(root.master)
    font = Font(size=25 , weight="bold")
    label = Label(frame , font=font , text="tuna fish")
    label.pack()
    frame.pack()
Run Code Online (Sandbox Code Playgroud)

这是驱动程序main.py main.py

if __name__ == "__main__":
    root = start.baseApp()
    root.Menu_Customer.add_command(label="New customer", command=lambda: tmp.main(root=root))
    root.master.mainloop()
Run Code Online (Sandbox Code Playgroud)

基础应用程序

我创建了名为Customer 的根窗口和菜单栏,并main.py.
tmp.py说例外

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib64/python3.5/tkinter/__init__.py", line 1559, in __call__
    return self.func(*args)
  File "main.py", line 10, in <lambda>
    root.Menu_Customer.add_command(label="New customer", command=lambda: tmp.main(root=root))
  File "/home/engle/Documents/Project/CleanMaster/tmp.py", line 6, in main
    font = Font(size=25 , weight="bold")
  File "/usr/lib64/python3.5/tkinter/font.py", line 93, in __init__
    tk.call("font", "create", self.name, *font)
AttributeError: 'NoneType' object has no attribute 'call'
Run Code Online (Sandbox Code Playgroud)


它出什么问题了 ?

Jos*_*lin 6

为了Font在 tkinter 中使用该类,的实例Tk()必须正在运行。如果您有这样的实例正在运行,请尝试将其作为参数显式传递给您的字体:

def main(root):
    ...
    font = Font(root=root.master, size=25 , weight="bold")
    ...
Run Code Online (Sandbox Code Playgroud)