首页 > 解决方案 > 保持 tkinter 画布原点居中

问题描述

是否可以在不将 Configure 事件处理程序绑定到画布的情况下保持可调整大小的 tkinter.canvas 的原点居中?我想实现与以下 python 脚本相同的结果,但不使用绑定。

找了两个小时就放弃了。有我想念的小部件选项吗?

import tkinter
from PIL import ImageTk

def centerCanvasOrigin(e):
    root.update()
    cnv.scan_dragto(round(cnv.winfo_width()/2), round(cnv.winfo_height()/2), 1)
    
root = tkinter.Tk()
cnv = tkinter.Canvas()
cnv.pack(fill = tkinter.BOTH, expand = 1)
cnv.bind("<Configure>", centerCanvasOrigin)
img = ImageTk.PhotoImage(file="img/image.png")
cnv.create_image(0, 0, image = img)
centerCanvasOrigin(True) #i know, sry about this :)

root.mainloop()

标签: pythontkintercanvascentering

解决方案


是否可以在不将 Configure 事件处理程序绑定到画布的情况下保持可调整大小的 tkinter.canvas 的原点居中?

不它不是。


推荐阅读