【发布时间】:2018-07-18 02:04:25
【问题描述】:
我正在尝试在 python 中使用放大、缩小功能。我之前曾尝试使用该功能放大海龟、画布等中的线条,但似乎没有任何效果,而不是缩放,代码要么增加或减少线条的长度。我想放大该行以在该行上添加文本,以便当用户放大该行时,他/她可以看到文本。这是我要更改的代码。
from tkinter import *
root = Tk()
Label(root).pack()
canvas = Canvas(root, width=400, height=400)
canvas.pack(fill=BOTH, expand=1)
widget = Button(None, text='zoomin-out')
widget.pack()
canvas.create_line(175,175,225,225)
def zoomin(event):
d = event.delta
if d < 0:
amt=0.9
else:
amt=1.1
canvas.scale(ALL, 200,200, amt, amt)
widget.bind('<Button-1>', zoomin)
def zoomout(event):
d = event.delta
if d >0:
amt=1.1
else:
amt=0.7
canvas.scale(ALL, 200,200 , amt, amt)
widget.bind('<Double-1>', zoomout)
widget.mainloop()
root.mainloop()
【问题讨论】:
-
我相信
event.delta只会对鼠标滚轮事件有意义,而不是您在此处绑定的点击事件。除了增加或减少它的长度之外,你期望缩放一条线做什么?如果您希望在放大时线条变粗,您必须自己实现 -canvas.scale()仅调整坐标,而不调整任何其他画布项目属性。 -
当你放大一条线时,它自然会变长。
-
我想平行增加宽度。宽度的增加将允许用户在单击放大按钮时看到放置在圆圈中的文本
标签: python python-3.x tkinter