tcl - 自动显示TK标签中的TCL子字段

标签 tcl tk-toolkit

我有一个变量和一个显示变量内容的标签。每次变量有新值时它都会改变:

global MyVariable
label .mylabel -textvariable MyVariable

这有效。

现在的问题是 MyVariable 不包含我想要显示的值,但它是一个值列表,我想执行一些代码来提取实际包含数据的子字段要显示。有没有一种简单的方法可以将一些粘合逻辑放入该标签中,以便在显示更改的变量内容之前对其进行预处理?

最佳答案

标签只能监视整个变量,无论是标量还是(关联)数组的元素。他们没有任何东西可以查看列表、字典或其他结构。但您可以通过跟踪来模拟您想要的内容。

trace add variable x write [list apply {args {
    global x x_1
    set x_1 [lindex $x 1]
}}]
set x [list a b c d e]
label .x1 -textvariable x_1
pack .x1

# Some time later...
lset x 1 fruitbat

# A different type of update
set x "the quick brown fox"

您可以将任意复杂的计算放入跟踪中,但在实践中,让它们相当快以便您的 GUI 感觉响应迅速是一个非常好的主意。从文件或数据库读取实际上可能足够快(在某些情况下),所以不要感觉太受限......

关于tcl - 自动显示TK标签中的TCL子字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807636/

相关文章:

python - Tkinter 标签更新问题

r - Tk 表 : could not be found in R

perl - 如何创建 2 个带有滚动条的 Perl/TK 文本区域,当我滚动其中一个时,两个文本区域都会同时滚动?

tcl - 从字符串中删除前缀子字符串

linux - 尝试放置错误变量时如何修复 Tcl 'Command not found' 错误?

python - 将变量从 Python 脚本传递到 tcl shell

python - 有没有办法将 Python/Tkinter 连接到已经运行的 Tcl/Tk 应用程序?

Python tkinter on matplotlib 如何更新?

algorithm - 为 TCL 列表添加后缀

tcl - 跨平台移动到垃圾箱