Ich entwickle derzeit GUI in tcl tk. In der GUI versuche ich, Datei fortlaufend zu lesen wie (Tail-f). Ich möchte Daten in Textfeld eingeben. Ich habe einen Thread erstellt, um diese Aufgaben zu trennen und gui lebendig zu halten. Aber es erlaubt mir nicht, den Namen des Text-Widgets innerhalb des Threads zu verwenden.Einfügen von Text in Textfeld in tcl tk durch Thread
So bin ich mit der Frage, wie Text Widget Name an den Thread übergeben werden.
ttk::notebook .note -width 1000 -height 450
ttk::frame .note.tabOne;
ttk::frame .note.tabTwo;
.note add .note.tabOne -text "Test Configuration"
.note add .note.tabTwo -text "Results"
set .note.tabTwo.results [ScrolledWindow .note.tabTwo.results ]
pack .note.tabTwo.results -fill both -expand true
set resulttxt [text .note.tabTwo.results.resulttxt -wrap none -width 63 -height 10]
.note.tabTwo.results setwidget $resulttxt
pack .note
proc displayText {$file} {
global file
global resulttxt
set data "hithi fio ui"
$resulttxt insert end $data
exec fio $file --status-interval=1 > test1.txt 2>&1 &
set t [thread::create]
thread::send -async $t [list set yourxs $resulttxt]
thread::send $t {
global resulttxt
puts $yourxs
# Load the Tcllib fileutil package to use its
# findByPattern procedure.
#package require fileutil
#set files [fileutil::findByPattern [pwd] *.tcl]
set log [open /media/sf_Tcl/bin/project/fio_ui-1.0/test1.txt r]
for { } { true } { after 1000 } {
#after [expr { int(500*rand()) }]
$yourxs insert end $data1
}
close $log
}
}
Ist dies ein Duplikat von http://stackoverflow.com/questions/4436048/how-can-one-tcl-thread-cause-an-event-in-an-other? – Jackson