优草派  >   Python

Tkinter画布怎么和窗口一起变化?Python窗口程序Tkinter组件怎么随窗口缩放

罗西汉            来源:优草派

Tkinter标准库创建出来的窗口程序如果没有作出限制的话,是能够通过鼠标来对其进行大小拉伸来放大或者缩小尺寸的,那么这个时候窗口组件也是应该放大才可以。而下面会以tkinter画布组件为示例,来详细讲解该怎么让组件随窗口变化而缩放。

Tkinter画布怎么和窗口一起变化?Python窗口程序Tkinter组件怎么随窗口缩放

1.那么首先需要在代码之中将tkinter库导入,并且创建出来一个窗口对象,这个窗口标题和大小设置都可以。然后关键在于需要让其去绑定窗口监听事件,也就是当窗口变化时会处罚的函数,代码示例如下:

import tkinter as tk
window = tk.Tk()
first_load = True
window.bind('<Configure>', window_resize)

2.接下来就是去编写窗口监听时触发的函数了,这个函数不需要去接收任何参数都可以,不过可以使用event来表示它是一个事件。在此函数之中需要先去定义两个变量来表示窗口大小初始值,然后再将它们作为窗口最小尺寸。

接着就是使用frame来在这个窗口之中创建出字窗口,这样才可以让窗口进行像素级的缩放。把创建出来的画布组件添加到子窗口之中,代码示例如下

def window_resize(event=None):
  window.minsize(width, height)
   frame1 = tk.Frame(window, width=360, height=340)
   frame1.pack_propagate(0)
   frame1.place(x=20, y=10)
  cv = tk.Canvas(frame1, bg='white',width=200,height=100)

3.那么到此窗口以及组件都创建好了,接下来还是在这个函数之中去编写代码。这段代码需要先获取到窗口当前高宽,然后去判断它相比于初始高宽是否有变化,有变化就使用config()方法计算出差值后在重新设置组件大小,最后去启动窗口事件循环即可,详细代码示例如下所示:

new_width = window.winfo_width()
new_height = window.winfo_height()
if save_width != new_width or save_height != new_height:
  frame1.config(width=new_width-40, height=new_height-60)

以上就是关于“Tkinter画布怎么和窗口一起变化?Python窗口程序Tkinter组件怎么随窗口缩放”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行