tkinter 包或网格或放置错误

tkinter pack or grid or place bug

我遇到了 tkinter 的问题。经过几个小时的研究,我发现了我的错误,但不明白为什么会这样。

如果我写这个片段:

self.progressbar = ttk.Progressbar(self.frame_content, orient=HORIZONTAL, length=200, mode='determinate').grid(row = 2, column = 2)

而不是这个:

self.progressbar = ttk.Progressbar(self.frame_content, orient=HORIZONTAL, length=200, mode='determinate')
self.progressbar.grid(row = 2, column = 2)

我收到这个错误:

AttributeError: 'NoneType' object has no attribute 'start'

我明白这个错误,但我不明白为什么会这样。有人可以给我解释一下吗?

它的发生是因为 grid(row = 2, column = 2) returns 根据定义为 null,即它不是错误。因此,在您的第一个示例中,self.progressbar 为空。在您的第二个示例中情况并非如此,其中 self.progressbar 包含 ttk.Progressbar() 的实例。 pack() 也是如此,顺便说一句。