【问题标题】:Tcl/Tk: How to create a progress bar with a status text inside?Tcl/Tk:如何创建一个带有状态文本的进度条?
【发布时间】:2016-01-05 23:33:54
【问题描述】:

我想使用 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

【问题讨论】:

    标签: tcl tk ttk


    【解决方案1】:

    通常情况下,您不会。进度条的标准平台渲染不支持这样的标签。

    但是, 你可以用frames 和labels 破解一些东西(以及巧妙地使用place)。我很久以前写过this page,其中包含指向执行此操作的代码的链接。它应该仍然有效,但看起来可能不是您真正想要的:这些年来,这些东西应该是什么样子的标准已经发生了很大变化。

    讨厌自我推销,但我不知道有任何其他代码可以做到这一点。

    【讨论】:

    • 真的很酷,它有效。现在我正在尝试理解源代码(对我来说有很多新命令)。
    • 小部件是如何相互堆叠和放置的。这非常 hacky。此外,它使用option add,这完全是晦涩难懂的。 (即使我写了它也很模糊!)但对于理解代码是如何工作的并不重要;这很像在查看复杂网页时如何忽略 CSS。
    猜你喜欢
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多