【发布时间】:2018-09-02 18:13:27
【问题描述】:
我遇到了在 tkinter 画布上渲染弧线的问题。 (我正在为画布使用scaling 和scrolling 的推荐方法,请参阅我的代码...)
代码在画布上创建一个圆弧,其样式为'pieslice'。
起初一切似乎都正常,但是当我继续放大到形状的弯曲边缘时,在某些时候它开始与其他边缘不匹配并最终消失......
如果我继续放大,其他边缘也会消失...
from tkinter import *
root = Tk()
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
cnv = Canvas(root)
cnv.grid(row=0, column=0, sticky='nswe')
cnv.create_arc(20, 20, 250, 250, start=0, extent=30)
def scroll_start(event):
cnv.configure(cursor='fleur')
cnv.scan_mark(event.x, event.y)
def scroll_move(event):
cnv.scan_dragto(event.x, event.y, 1)
def scroll_end(event):
cnv.configure(cursor='arrow')
def zoom(event):
if event.delta > 0:
cnv.scale('all', cnv.canvasx(event.x), cnv.canvasy(event.y), 1.1, 1.1)
else:
cnv.scale('all', cnv.canvasx(event.x), cnv.canvasy(event.y), 0.9, 0.9)
cnv.bind('<Button-3>', scroll_start)
cnv.bind('<B3-Motion>', scroll_move)
cnv.bind('<ButtonRelease-3>', scroll_end)
cnv.bind('<MouseWheel>', zoom)
root.mainloop()
有没有办法解决这个问题,还是我遇到了 tkinter 的限制?感谢您的帮助。
【问题讨论】:
标签: python-3.x tkinter tkinter-canvas