Tkinter 是一个用于创建图形用户界面的流行 Python 库,有一个常见问题,即小部件可以存储为 None价值观。尝试调用小部件方法时可能会出现此问题,导致错误,例如“NoneType'对象没有属性'configure'。”
导致此问题的一个原因是 Tkinter 的 grid、pack 和 place 方法的方式操作。这些方法是就地的并且返回 None,这意味着该小部件不能在创建时在同一行上调用。相反,必须创建小部件,然后在下一行调用就地方法。
例如,在提供的代码片段中:
def genABC(): for r in range(3): for c in range(10): if (c+(r*10)>25): break print(c+(r*10)) b[c+(r*10)] = Button(f, text=chr(97+c+(r*10)), command=lambda a=c+(r*10): color(a), borderwidth=1,width=5,bg="white").grid(row=r,column=c)
直接调用网格方法创建 Button 小部件后,导致错误。要解决此问题,必须按如下方式重构代码:
def genABC(): for r in range(3): for c in range(10): if (c+(r*10)>25): break print(c+(r*10)) b[c+(r*10)] = Button(f, text=chr(97+c+(r*10)), command=lambda a=c+(r*10): color(a), borderwidth=1,width=5,bg="white") b[c+(r*10)].grid(row=r,column=c)
通过分离小部件创建和就地方法调用,可以正确配置小部件并可用于将来的交互。此调整确保 Tkinter 小部件可以在 Python 应用程序中有效存储和使用。
以上是为什么 Tkinter 小部件存储为 None 会导致'NoneType”对象没有属性'Configure”?的详细内容。更多信息请关注PHP中文网其他相关文章!