【发布时间】:2016-06-06 14:40:56
【问题描述】:
我正在做一个项目,该项目处理一种地图,其中有一些线作为路径。这些路径可以有两种状态,活动和非活动,颜色不同。有一种方法可以改变填充颜色。 我不知道为什么我的画布线不会更新。这是我的简化代码:
import Tkinter
inactive = "#385c61"
active = "#7dd5cd"
map = Tkinter.Canvas()
class GuiPart(object):
def __init__(self, master):
#some code
def initGui(self, master):
map = Tkinter.Canvas(left, width=660, height=600, bg="#35424b", bd="0", highlightthickness="0")
map.pack()
global inactive, active
pathA = map.create_line(135, c, 135, e, fill=inactive, width=w)
def setActivePath(self):
global active, inactive
map.itemconfig(pathA, fill=active)
map.update_idletasks()
map.update()
root = Tkinter.Tk()
gui = GuiPart(root)
gui.initGui(root)
gui.setActivePath()
root.mainloop()
如果我在initGui 中使用itemconfig 更改颜色,它应该可以正常工作,但后来我必须从另一个类调用setActivePath,所以它必须是一个自己的方法。
(我知道我给map = Tkinter.Canvas(...) 打了两次电话,否则我得到一个错误,也必须修复它)
有什么想法吗?
【问题讨论】:
-
嗯,现在我在 R. Murray 的帮助下更改了代码后,如果我删除画布的第一个调用,我不会收到错误消息。但主要问题,即颜色没有改变仍然存在......
-
@forever_engineer 我正在处理它。
-
尝试清除
class type和namespace方法。您想访问loop内部元素(可以在内部调用(鼠标事件、按钮等))!