微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tkinter 以编程方式调整框架大小

如何解决Tkinter 以编程方式调整框架大小

我有一个 toplevel 窗口,我在其中创建了一个 canvas一个 frame支持滚动功能

部分 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

我无法检索 textcheckbuttons 属性的宽度(最好以像素为单位)。我找到了解决方法

问题#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 的红色背景填充。

Pic of the right part of the gui which is supposed to be filled in with the red background of the frame

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。