2016-02-10 72 views
1

我只想弄清楚如何通过.txt insert end $var插入变量的内容,并让我插入的内容总是自动显示在最后一行,无需向下滚动手动文本。TCL/TK文本命令始终显示最后一行输入

一个简单的TCL例如:

proc push_button { } { 
    global k 
    set name [.ent get] 
    .txt insert end "$k New Line...$name\n" 
} 
global k 
set k 1 
frame .frm -relief groove 
label .lab -text "Enter name:" 
entry .ent 
button .but -text "Insert Line" -command "push_button; incr k" 
text .txt -width 20 -height 10 
pack .lab -in .frm 
pack .ent -in .frm 
pack .frm 
pack .but 
pack .txt 

回答

5

尝试.txt see end使指数end可见。为避免在底部出现空行,您可能需要使用.txt see end-2c,这会使您在最后一次\n之前显示字符。 end-2l也可以工作(c =字符,l =行,您需要2,因为小部件在插入最后一个字符后添加了一个额外的换行符)。每次向小部件添加文本时都要这样做。

例如:

proc push_button { } { 
    global k 
    set name [.ent get] 
    .txt insert end "$k New Line...$name\n" 
    .txt see end-2c 
} 

文档:globalprocsettext

+0

嗨彼得......对不起,我无法捕捉你的想法。你能给我发一些新的例子吗? tks – Felipe

+0

@Felipe:添加了示例。 –

+0

嗨,彼得/唐纳感谢您的支持! – Felipe

相关问题