(摘自我的程序代码)
global pensize
global rect1
try:
pensize
except:
pensize = 0
global pencolor
try:
pencolor
except:
pencolor = "red"
def callback(event):
global rect1
rect1 = canvas.create_rectangle(event.x-pensize, event.y-pensize, event.x+pensize, event.y+pensize, fill="red")
print(pencolor)
def setpencolor(color):
global pencolor
pencolor = color
global rect1
canvas.itemconfig(rect1, fill=pencolor)
print("Pencolor set to"+str(pencolor))
# --- window properties ---
# --- the canvas ---
canvas= Canvas(root, width=600, height=600)
canvas.bind("<B1-Motion>", callback)
canvas.pack(side = RIGHT)
# --- the menubar ---
menubar = Menu(root)
menubar.add_command(label="Exit", command=root.quit)
# --- color tool---
colormenu = Menu(menubar, tearoff=0)
colormenu.add_command(label="Black", command=lambda: setpencolor("black"))
colormenu.add_command(label="Red", command=lambda: setpencolor("red"))
colormenu.add_command(label="Blue", command=lambda: setpencolor("blue"))
menubar.add_cascade(label="Color", menu=colormenu)
这是我正在制作的绘图程序的一部分。我想让它,当用户改变颜色时,它不仅改变了钢笔的颜色,而且也改变了他们画的其他所有东西。不过,这些概念都不管用。矩形的填充颜色保持黑色,即使pencolor明显设置为“红色”。虽然它应该改变其他事物的颜色,但它绝对没有任何作用。我做错什么了?你知道吗
欢迎来到stackoverflow!你知道吗
在玩了你的例子之后,我相信这与你的钢笔大小有关。你只看到边界,总是黑色的。我已经减少了你的例子一点,下面的作品几乎如预期。注意到每个矩形周围的黑色边框了吗?这就是你想要改变的。你知道吗
现在,尝试创建矩形,如下所示:
要回答问题的最后一部分,现在必须找到画布上的所有元素,并使用
itemconfigure
更改它们的属性:相关问题 更多 >
编程相关推荐