Tcl/Tk: 如何创建一个带有状态文本的进度条?
Tcl/Tk: How to create a progress bar with a status text inside?
我想使用 Tcl/Tk >= 8.5 创建一个进度条,它不仅 以图形方式显示进度,而且还以数字(居中)的形式显示进度百分比进度条(例如“12 %”)。
我正在考虑透明地覆盖进度条和标签,或者将其设为另一个小部件的父级,但我想不出解决方案。
有什么想法吗?
这里是一个简单的程序框架:
proc Counter {} {
for {set i 0} {$i < 100} {incr i} {
puts "$i"
after 25
.pb configure -value $i
update idletask
}
}
ttk::progressbar .pb -orient horizontal -maximum 100 -length 400 -value 0
button .bt -text "Start counter" -command Counter
pack .pb
pack .bt
通常,你不会。进度条的标准平台渲染不支持这样的标签。
但是, 你可以用 frame
s 和 label
s 来破解一些东西(巧妙地使用place
)。我很久以前写了 this page,其中有指向执行此操作的代码的链接。它应该仍然有效,但它可能看起来不像你真正想要的那样:多年来这些东西应该是什么样子的标准发生了很大变化。
我讨厌self-promotion,但我不知道有任何其他代码可以做到这一点。
我想使用 Tcl/Tk >= 8.5 创建一个进度条,它不仅 以图形方式显示进度,而且还以数字(居中)的形式显示进度百分比进度条(例如“12 %”)。
我正在考虑透明地覆盖进度条和标签,或者将其设为另一个小部件的父级,但我想不出解决方案。
有什么想法吗?
这里是一个简单的程序框架:
proc Counter {} {
for {set i 0} {$i < 100} {incr i} {
puts "$i"
after 25
.pb configure -value $i
update idletask
}
}
ttk::progressbar .pb -orient horizontal -maximum 100 -length 400 -value 0
button .bt -text "Start counter" -command Counter
pack .pb
pack .bt
通常,你不会。进度条的标准平台渲染不支持这样的标签。
但是, 你可以用 frame
s 和 label
s 来破解一些东西(巧妙地使用place
)。我很久以前写了 this page,其中有指向执行此操作的代码的链接。它应该仍然有效,但它可能看起来不像你真正想要的那样:多年来这些东西应该是什么样子的标准发生了很大变化。
我讨厌self-promotion,但我不知道有任何其他代码可以做到这一点。