我有一个toplevel
窗口,我在其中创建了 acanvas
和 aframe
以支持滚动功能。
部分canvas
和frame
代码如下所示:
##Canvas
self.canvas = tk.Canvas(self.toplevel, borderwidth=0)
self.canvas.bind_all("<MouseWheel>", self.__on_mousewheel)
self.canvas.pack(side="left", fill="both", expand=True)
##Frame
self.frame = tk.Frame(self.canvas, background="red")
self.frame.bind("<Configure>", lambda event, canvas=self.canvas: self.__on_frame_configure())
self.canvas.create_window((1,1), window=self.frame, anchor="n")
……
在代码中的“稍后”,我frame
用动态生成的复选按钮数量填充。(取决于用户输入)
问题 #1
我无法检索.text
属性的宽度(最好以像素为单位) checkbuttons
。我找到了解决方法!
问题 #2
我想以编程方式调整frame
.
self.frame.update()
print("Im here",self.frame.winfo_width())
self.frame.configure(width=self.frame.winfo_width() + 30)
print("Now im here",self.frame.winfo_width())
self.canvas.configure(width=self.frame.winfo_width())
self.canvas.configure(height=self.frame.winfo_height())
打印语句的结果:
Im here 904
Now im here 934
当我检查 gui 时,我注意到只有该画布被调整大小。
gui的右侧部分的图片,应该用红色背景填充frame
。