我希望矩形进度条在按下按钮时改变其尺寸,特别是将长度增加10。对于tk.Label
,我可以使用textvariable
,但我不知道如何将类似的东西用于矩形坐标。
import tkinter as tk
from tkinter import ttk
def buttonUpdate(width):
return width.get()+10
root = tk.Tk()
v=tk.IntVar()
v.set(10)
tk.Button(root, text="+10", command=lambda:v.set(buttonUpdate(v))).grid()
tk.Label(root, textvariable=v).grid()
canvas=tk.Canvas(width=140, height=42)
canvas.grid(row=4, column=0, pady=2)
canvas.create_rectangle(0,0,v.get(),10,)
root.mainloop()
我如何实现这样的目标?
答案 0 :(得分:0)
canvas.create_rectangle
不支持您希望使用的变量,但是我建议您使用trace
这样的变量方法来实现所需的功能。
def update_rectangle(canvas, r):
new = canvas.coords(r)
new[2] = new[2] + 10
canvas.coords(r, *new)
r = canvas.create_rectangle(0,0,v.get(),10)
v.trace("w", lambda a,b,c: update_rectangle(canvas, r))
root.mainloop()
您可以详细了解trace
方法here。