checkbutton1 = Checkbutton(self.button_frame, variable=var, text="{}".format(data_demo.Serial_Number), compound='right', font=("Arial", int(self.button_frame.winfo_width()/2))) print(self.button_frame.winfo_width(), "1")为什么打印的是1
时间: 2024-03-20 19:41:29 浏览: 86
checkbutton源代码
4星 · 用户满意度95%
根据你提供的代码,我猜测问题可能出在获取 `self.button_frame` 宽度时机上。在创建 `Checkbutton` 对象时,它所在的 `self.button_frame` 可能还没有被摆放到具体的位置,此时获取其宽度可能是0。因此,你可以尝试将获取 `self.button_frame` 宽度的代码放到创建 `Checkbutton` 对象之前,或者使用 `self.button_frame.update()` 方法强制刷新窗口,再获取宽度。具体代码如下所示:
```
self.button_frame.update() # 强制刷新窗口
print(self.button_frame.winfo_width()) # 获取宽度
checkbutton1 = Checkbutton(self.button_frame, variable=var, text="{}".format(data_demo.Serial_Number), compound='right', font=("Arial", int(self.button_frame.winfo_width()/2)))
```
这样应该就可以正确获取到 `self.button_frame` 的宽度了。
阅读全文