如何将tkinter小部件作为模块从另一个python文件导入? 导入一个tkinter选项功能表,该功能表的背景颜色会根据所选内容发生变化。

如何将tkinter小部件作为模块从另一个python文件导入? 导入一个tkinter选项功能表,该功能表的背景颜色会根据所选内容发生变化。,python,tkinter,Python,Tkinter,下面的代码创建一个tkinter OptionMenu,其背景颜色根据从下拉菜单中选择的内容而变化。它能正常工作,我也希望如此 但是,如何使此选项菜单可重复使用?这样我就可以将它从另一个.py文件导入到我的主.py文件中 几天来,我一直在尝试不同的方法,阅读关于如何做到这一点的书籍,但一直没有弄明白。我读过关于将函数转化为类,将变量转化为函数等,并将其导入的内容。然而,我一直不能完全正确地理解它,我被难倒了 import tkinter HEIGHT = 700 WIDTH = 1100 m

下面的代码创建一个tkinter 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()

将其作为一个类并在需要再次使用时创建实例“使此
选项菜单
可重用?”:它被定义为
类选项菜单
,因此您可以通过继承创建自己的
背景选项菜单(tk.OptionMenu):
。查看或使其成为类,并在需要再次使用时创建实例“使此
选项菜单
可重用?”:它被定义为
类选项菜单
,因此您可以通过继承创建自己的
背景选项菜单(tk.OptionMenu):
。看到或