用户选择一个目标,然后更改背景配色方案。我可以使用它,但是当运行新功能时,配色方案会恢复为原始颜色。
选择目标后,将调用以下功能之一(取决于选择的目标。
def Get_Fit():
canvas.delete("all")
goal = "fit"
Overlay(goal)
Bottom(goal)
这些功能确定目标,然后调用叠加功能(对于配色方案是合理的)。
def Overlay(goal):
colour = Goal(goal)
canvas.create_oval(-2000, 50, 1000, 2000, fill='gray33', outline=colour, width=4)
canvas.create_oval(-300, 1600, 4000, 300, fill="gray21", outline=colour, width=4)
canvas.create_text(500, 100, text="EZ FITNESS", font=font3, fill = "gray80")
此overlay
函数调用另一个称为goal
的函数。 goal
负责确定配色方案中的颜色。
def Goal(goal):
if goal == "fit":
colour="#00e5ff"
elif goal == "weight":
colour="#ff00e5"
elif goal == "strong":
colour = "#d60000"
else:
colour="#ff5d00"
return colour
每次调用overlay函数时,其调用方式如下:
Overlay(goal)
现在,当我选择一个目标时,配色方案将按预期方式更改。但是,一旦我运行一个新功能(在此示例中为account
),配色方案就会恢复为原始颜色。有什么想法吗?这是Account
def Account():
canvas.delete("all")
Bottom(goal)
Overlay(goal)
startingweight_label = Label(canvas, width=15, height=1, text="Starting Weight: ", font=font2, bg="gray33", fg="white", relief = "raised", borderwidth=2)
canvas_startingweight_label = canvas.create_window(475, 350, window=startingweight_label)
startingweight_entry = Entry(root, width = 10, bg="gray30")
canvas_startingweight_entry = canvas.create_window(600, 350, window=startingweight_entry)
这是一些图片 图片A展示了选择“健身”目标后发生的情况。效果很好。
答案 0 :(得分:0)
我设法解决了这个问题!
问题在于,对goal
所做的更改仅保留在该函数的本地。我必须做的是返回目标,以便对功能进行的所有更改都对其他功能进行。我只是通过对变量进行全球化来做到这一点。全球化变量时需要小心,但是在这种情况下,我认为还可以!
def Get_Fit():
canvas.delete("all")
goal = "fit"
global goal
Overlay(goal)
Bottom(goal)