我有一个按钮,我想改变当它被点击,然后在代码运行后,它改变回默认的颜色。我可以用下面的代码让它改变颜色。由于我还没有步进电机,我不能运行代码让它移动,所以我只是使用time.sleep来模拟它。
在按下按钮之前
按下按钮后
到目前为止还不错。现在,如果我取消注解time.sleep行,颜色不会改变,直到睡眠完成,不知道为什么。
如果我取消注解self.button_11.configure(fg_color=['#3B8ED0','#1F6AA5'])
行,不管sleep命令是否被注解掉,颜色都不会变成红色。
我期待以下内容:
1.按钮fg_color =单击前带蓝色
1.单击按钮时,按钮颜色变为红色
- 5秒通过
1.按钮返回到正常的fg_color
我不知道为什么第二种颜色会立即覆盖红色。
有什么想法吗?
# Test the feeder
def feed_testing(self):
global feed_steps
print(self.button_11.cget("fg_color"))
self.button_11.configure(fg_color="Red")
print(self.button_11.cget("fg_color"))
# time.sleep(5)
# self.button_11.configure(fg_color=['#3B8ED0','#1F6AA5'])
# print(self.button_11.cget("fg_color"))
更新:我只是改变了代码,
def feed_testing(self):
global feed_steps
print(self.button_11.cget("fg_color"))
self.button_11.configure(fg_color="Red")
print(self.button_11.cget("fg_color"))
self.button_11.update_idletasks()
time.sleep(5)
# self.button_11.configure(fg_color=['#3B8ED0','#1F6AA5'])
self.button_11.configure(fg_color='#3B8ED0')
print(self.button_11.cget("fg_color"))
如JasonHarper所述。现在在time.sleep(5)
之后,按钮 Flink 红色一微秒,刚好足够长的时间看到它 Flink 。
1条答案
按热度按时间ttp71kqs1#
好吧,我知道了。我使用
self.button_11.after(1, self.update())
它完全按照需要工作。下面是修改后的代码。感谢所有回答的人,特别是jasonharper。:)