Python 在“上调用函数”&书信电报;输入>&引用;当调用enter函数时,帧上的显示会导致帧闪烁

Python 在“上调用函数”&书信电报;输入>&引用;当调用enter函数时,帧上的显示会导致帧闪烁,python,tkinter,Python,Tkinter,当用户将鼠标悬停在框架上时,我试图更改框架及其组件的颜色。我已经成功地做了一百万次了,但这一次肯定有所不同,因为无论何时调用或事件,小部件的大小都会在瞬间增加,而不是简单地更改颜色。这会导致UI出现闪烁效果 当我将changecolor函数更改为仅更改框架子对象的颜色时,我就没有问题了。调用config选项时,是什么导致帧本身的大小闪烁 将tkinter作为tk导入 从tkinter进口* 导入时间 类别信息卡(框架): ''在矩形上以美观的方式显示值和标题的类。 可以传递在单击时调用的命令。

当用户将鼠标悬停在框架上时,我试图更改框架及其组件的颜色。我已经成功地做了一百万次了,但这一次肯定有所不同,因为无论何时调用
事件,小部件的大小都会在瞬间增加,而不是简单地更改颜色。这会导致UI出现闪烁效果

当我将changecolor函数更改为仅更改框架子对象的颜色时,我就没有问题了。调用config选项时,是什么导致帧本身的大小闪烁


将tkinter作为tk导入
从tkinter进口*
导入时间
类别信息卡(框架):
''在矩形上以美观的方式显示值和标题的类。
可以传递在单击时调用的命令。如果卡有相关命令,卡将响应悬停输入。“”
def _uuinit _uuu(self,parent=None,*,background=None,front=None,labelforeground=None,labeltext=None,value=None,command=None):
self.parent=parent
self.master=parent
self.main=self.master
self.background=背景
self.foreground=前景
self.labelforeground=labelforeground
self.labeltext=labeltext
自我价值=价值
self.command=命令
帧。\uuuu初始化(自,父)
self.config(bg=self.background,bd=0,highlightthickness=0,highlightcolor=self.background,highlightbackground=self.background)
self.frame=frame(self,bg=self.background,浮雕=FLAT,bd=0,highlightthickness=0)
self.frame.grid(行=0,列=0,粘滞=nsew',padx=0,pady=0)
self.valuelabel=Label(self.frame,text=str(self.value),font=(“Segoe UI Light”,28,“normal”),relief=FLAT)
self.valuelabel.grid(行=1,列=0,粘滞=ew',padx=5,pady=(5,0))
self.valuelabel.config(前台=self.前台,后台=self.background,bd=0,highlightthickness=0)
self.textlab=Label(self.frame,text=str(labeltext),font=(“Segoe UI”,14,“normal”),relief=FLAT)
self.textlabel.grid(行=2,列=0,粘性=ew',padx=(5,5),pady=(0,5))
self.textlab.config(前台=self.labelforeground,后台=self.background,bd=0,highlightthickness=0)
self.frame.columnconfigure(0,权重=1)
self.frame.rowconfigure(1,权重=1)
self.columnconfigure(0,权重=1)
self.rowconfigure(1,权重=1)
self.bind(“”,self.click)
self.valuelabel.bind(“”,self.click)
self.textlab.bind(“”,self.click)
self.bind(“,self.hover)
self.bind(“,self.leave)
如果自我命令!=无:
self.config(cursor=“hand2”)
def单击(自身,事件):
如果自我命令!=无:
self.command()
def悬停(自身、事件):
#打印('称为悬停')
如果自我命令!=无:
self.changecolor(‘浅蓝色’)
def休假(自我、事件):
#打印('称为请假')
如果自我命令!=无:
self.leavechangecolor(self.background)
def CHANGECLOR(自身,颜色):
#打印('已尝试打印')
#如果我离开下一行,就会出现闪烁
self.config(bg=color)
self.frame.config(bg=color)
self.textlab.config(bg=color)
self.valuelabel.config(bg=color)
def leavechangecolor(自身,颜色):
self.config(bg=color)
self.frame.config(bg=color)
self.textlab.config(bg=color)
self.valuelabel.config(bg=color)
def main():
root=Tk()
#几何体(“%dx%d%”(200100))
mycard=InfoCard(根,背景为白色,前景为红色,labelforeground为蓝色,labeltext为总计列,值为12)
mycard.grid(行=1,列=1,粘性=ew',padx=50,pady=25)
yourcard=InfoCard(根,背景为白色,前景为红色,labelforeground为蓝色,labeltext=“表格行”,value=“5200”)
yourcard.grid(行=1,列=2,粘性=ew',padx=50,pady=25)
他们的rCard=InfoCard(root,background='white',front='red',labelforeground='blue',labeltext=“带空白值的列”,value=1,command=printselected)
他们的卡片网格(行=1,列=3,粘性=ew',padx=50,pady=25)
root.columnconfigure(3,权重=1,最小值=300)
root.update()
root.mainloop()
def printselected():
print('通过单击'调用命令)
如果uuu name_uuuu==main():
main()
预期的结果是,悬停时,卡项将显示为浅蓝色。相反,它显示为浅蓝色,在重新绘制之前,卡会闪烁并短暂增大大小。
我缺少什么?

此代码无法运行。它需要一个名为
colors
Bryan的模块或对象,你说得对。我删除了对对象的引用,因此它应该与顶部导入的包一起运行。