Button tcl/tk按钮小部件中的动画GIF

Button tcl/tk按钮小部件中的动画GIF,button,tcl,gif,tk,animated-gif,Button,Tcl,Gif,Tk,Animated Gif,我有一个Tcl/tk应用程序,用户必须在许可证到期前10天收到通知。我想在工具栏右角的按钮中实现一个动画警告图像,以通知相同的情况。有什么方法可以实现它吗? 如果不能在一个按钮中完成,这可以作为正常图像或通过其他方式实现。任何链接或指导都是非常值得欣赏的 注意:动画图像可以是这样的对于我正在编写的软件,一般的解决方案是以设定的时间间隔重新配置标签上的图像。比如说, global toggle; set toggle 0; while {!{some condition to make the i

我有一个Tcl/tk应用程序,用户必须在许可证到期前10天收到通知。我想在工具栏右角的按钮中实现一个动画警告图像,以通知相同的情况。有什么方法可以实现它吗? 如果不能在一个按钮中完成,这可以作为正常图像或通过其他方式实现。任何链接或指导都是非常值得欣赏的


注意:动画图像可以是这样的

对于我正在编写的软件,一般的解决方案是以设定的时间间隔重新配置标签上的图像。比如说,

global toggle;
set toggle 0;
while {!{some condition to make the image stop changing}} {
   after 3000 {
      if {$toggle == 0} {
         set toggle 1;
         myLabel configure -image onImage;
      } else {
         set toggle 0;
         myLabel configure -image offImage;
      }
   }
   vwait toggle;
}

使用
after
在图像切换之间进行延迟,并使用
vwait
停止循环,直到图像切换完毕,从而迫使其等待
3000
ms或3秒

既然已经有了多帧GIF,处理它最简单的方法就是定期重新配置图像中显示的GIF帧。这将反映在您的GUI中。下面是如何每半秒在前两帧之间交换

proc swapFramesEveryHalfSecond {image {index 0}} {
    $image configure -format "gif -index $index"
    # Arrange for us to be called again in 500 milliseconds to select the other frame
    set nextIndex [expr {1 - $index}]
    after 500 swapFramesEveryHalfSecond $image $nextIndex
}
swapFramesEveryHalfSecond $yourImage

GUI的其余部分只需要使用该照片图像(并像任何Tk GUI一样保持事件循环的正常运行)。

您只需要一个动画gif,还是只想在按钮中使用它?在标签中,可以使用以下内容。在一个按钮中,我想你应该以设定的时间间隔重新配置按钮的图片,以产生动画效果。注意,上面的“循环”仅在前两帧之间。如果动画有更多帧,
nextIndex
的处理方式将略有不同。