0

我有一个toplevel窗口,我在其中创建了 acanvas和 aframe以支持滚动功能。

部分canvasframe代码如下所示:

    ##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

gui的右侧部分应该用框架的红色背景填充的图片

4

0 回答 0