python放大代码放大_Python中的放大缩小功能

有两个问题。首先,当您将Button-1和Double-1事件都添加到按钮小部件中时,双击将同时触发这两个事件。最后他们互相取消了,所以只有按一下键才能正常工作。在

其次,正如我在this SO answer中指出的,某些元素,如文本,不会缩放,它们将保持不变。您需要手动缩放字体以模拟文本缩放。在

下面是对您的代码按照上面的行进行的一次重做。我改变了它,使左键和右键单击按钮可以放大或缩小画布:from tkinter import *

EXAMPLE_TEXT = "Left or Right click button to zoom in/out"

FONT_NAME = "Helvetica"

font_size = 12

def zoom(amount):

global font_size

canvas.scale(ALL, 200, 200, amount, amount)

font_size *= amount

canvas.itemconfigure(text_item, font=(FONT_NAME, int(font_size)))

root = Tk()

canvas = Canvas(root, width=400, height=400)

canvas.pack(fill=BOTH, expand=1)

text_item = canvas.create_text(200, 200, font=(FONT_NAME, font_size), text=EXAMPLE_TEXT)

canvas.create_oval(50, 50, 350, 350)

widget = Button(root, text='zoom in/out')

widget.pack()

widget.bind('', lambda e: zoom(1.1))

widget.bind('', lambda e: zoom(0.7))

root.mainloop()

如果您注释掉以canvas.itemconfigure(...)开头的行,您将看到圆圈继续放大缩小,但文本保持固定大小。在

你可能感兴趣的:(python放大代码放大)