消失的 Tkinter 小部件之谜
您面临着一个令人困惑的问题,您的 Tkinter 按钮在数组中存储为 None ,呈现当您尝试调用它们时,它们将无法访问。
问题的根源
罪魁祸首在于您用来定位按钮的网格方法。该方法“就地”运行并且不可避免地返回 None,这意味着您不能在创建小部件后直接调用它。相反,您需要将这两个操作分开。
修复
要解决此问题,请修改您的代码,如下所示:
<code class="python">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)</code>
通过分离这些操作,您可以确保按钮已创建,然后正确放置在网格中。
理解“就地”方法
在 Tkinter 中,网格、 pack 和 place 方法“就地”运行,这意味着它们会自动修改调用它们的小部件。由于这些方法不会返回修改后的小部件,因此您无法在同一行上对小部件执行任何进一步的操作。
其他资源
了解更多详细信息关于 Tkinter 中 widget 布局的理解,请参考以下资源:
以上是以下是一些标题选项,使用不同的方式来表达问题并重点关注核心问题: 直接且切中要害: * 为什么我的 Tkinter 按钮突然变成'无”? * Tkinter 布的详细内容。更多信息请关注PHP中文网其他相关文章!