2016-02-10 104 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

相關問題