导入一个tkinter Optionmenu,其背景颜色根据选择而改变。
下面的代码创建一个tkinter Optionmenu,其菜单颜色根据从下拉菜单中选择的内容而变化。它也可以按我的意愿工作。
但是,如何使此Optionmenu可重复使用?这样我就可以将其从其他.py文件导入到我的主要.py文件中。
我一直在尝试不同的方法,并且阅读了几天的有关如何执行此操作的信息,但一直没有弄清楚。我已经读过有关将函数转换为类并将变量转换为函数等并将其导入的信息。但是,我一直无法完全正确并陷入困境。
import tkinter
HEIGHT = 700
WIDTH = 1100
m = tkinter.Tk()
from lists import lbmenuopt
canvas = tkinter.Canvas(m,height=HEIGHT,width=WIDTH,)
canvas.pack()
#selected item variable
clicked1 = tkinter.StringVar()
# function that changes background color based on selection
def lbmenubg(clicked1):
if clicked1 == "---":
lbmenu.configure(bg="#777777",activebackground="#777777")
elif clicked1 == "LB":
lbmenu.configure(bg="#D35400",activebackground="#D35400")
elif clicked1 == "Sign":
lbmenu.configure(bg="#D35400",activebackground="#D35400")
else:
lbmenu.configure(bg="#196F3D",activebackground="#196F3D")
# Option Menu settings and placement
lbmenu = tkinter.Optionmenu(m,clicked1,*lbmenuopt,command= lambda x: lbmenubg(clicked1.get()))
lbmenu.config(bg="#777777",foreground="white",activeforeground="white",activebackground="#777777",borderwidth=0,relief="flat",bd=0)
lbmenu['menu'].config(bg="#e4e4e4",fg="black",activebackground="white",activeforeground="#3b4045",)
lbmenu.place(relx=0.125,rely=.03,relwidth=0.065,relheight=0.03)
m.mainloop()