我已经尝试了几种方法来更改此示例代码中蓝色矩形的宽度。似乎没什么用。在代码中," a"表示介于1.00和0.00之间的浮点变量。该值用于计算" b,"这是蓝色矩形的所需宽度(以像素为单位)。我有一些相当复杂的代码生成了这个值,至少它是有效的。为了使代码有效,蓝色矩形的宽度必须依赖于" b。"我已经尝试了#34; Canvas.itemconfig(),"它没有用。
import tkinter
from tkinter import *
root = Tk()
root.maxsize(320,240) # Sets max size of window
root.minsize(320,240)
canvas_height = 23
canvas_width = 315
w = Canvas(root, width=canvas_width, height=canvas_height)
w.pack()
w.create_rectangle(5, canvas_height, canvas_width, 2, fill="yellow")
w.create_rectangle(5, canvas_height, canvas_width, 2, fill="blue")
a = 1.0 # More complicated code creates this float between 0.00 and 1.00. It is a percentage of the desired 'blue rectangle' width
b = int(a * canvas_width)
root.mainloop()
如果有人可以提供帮助,我将非常感激!
P.S。我是Stackoverflow社区的新手,所以请告诉我是否可以采取任何措施让我的问题更容易回答。
答案 0 :(得分:4)
矩形由对角的几个坐标定义。获取左边缘的坐标,将宽度添加到x坐标,然后使用它来设置右边缘的坐标。
首先,跟踪对象ID,以便稍后更改:
blue = w.create_rectangle(5, canvas_height, canvas_width, 2, fill="blue")
要调整大小,请获取坐标...
x0, y0, x1, y1 = w.coords(blue)
做一些数学......
x1 = x0 + b
重置坐标
w.coords(blue, x0, y0, x1, y1)