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

时间:2015-03-01 14:01:40

标签: button tcl gif tk animated-gif

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

N.B。动画图像可以是这样的enter image description here

2 个答案:

答案 0 :(得分:0)

对于我写的软件,一般的解决方案是以设定的时间间隔重新configure标签上的图像。例如,

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秒。

答案 1 :(得分:0)

由于您已经拥有多帧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都是正常的。)