如何从另一个python文件将tkinter小部件作为模块导入?

2024-09-30 12:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

导入一个tkinter选项菜单,该菜单的背景颜色会根据所选内容发生变化

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

Tags: py内容颜色tkinterconfigure选项菜单bg

热门问题