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