# ---------------------------- # funkce pro vykresleni hlavniho okna proc fncHlavniOkno {} { global PRVNI DRUHY TRETI CTVRTY PATY set PRVNI 1 set DRUHY 1 set TRETI 1 set CTVRTY 0 set PATY 0 # vytvoreni komponent okna frame .c checkbutton .c.prvni -text "Prvni" -variable PRVNI \ -onvalue 1 -offvalue 0 checkbutton .c.druhy -text "Druhy" -variable DRUHY \ -onvalue 1 -offvalue 0 checkbutton .c.treti -text "Treti" -variable TRETI \ -onvalue 1 -offvalue 0 checkbutton .c.ctvrty -text "Ctvrty" -variable CTVRTY \ -onvalue 1 -offvalue 0 checkbutton .c.paty -text "Paty" -variable PATY \ -onvalue 1 -offvalue 0 button .stav -text "Vytiskni stav" -width 15 -command {fncStav} # usporadani komponent okna grid .c -row 0 -column 0 -sticky "W" grid .c.prvni -row 0 -column 0 -sticky "W" grid .c.druhy -row 1 -column 0 -sticky "W" grid .c.treti -row 2 -column 0 -sticky "W" grid .c.ctvrty -row 3 -column 0 -sticky "W" grid .c.paty -row 4 -column 0 -sticky "W" grid .stav -row 1 -column 0 -sticky "W" } # zjisteni a vytisteni stavu checkboxu proc fncStav {} { set ls [winfo children .c] set out [open "file.log" a] foreach ctrl $ls { set outln "[$ctrl cget -text] : " set var [$ctrl cget -variable] global $var if {[expr $$var]} { append outln "vybran" } else { append outln "nevybran" } puts $out $outln } close $out } fncHlavniOkno # ----------------------------Kdyz jej date do souboru a nastavite spustitelne atributy, bude to fungovat. Protoze momentalne nejsem na linuxu ale na win, vyresil jsem vystup do logovaciho souboru (viz. fncStav), po jeji zmene na:
proc fncStav {} { set ls [winfo children .c] foreach ctrl $ls { set outln "[$ctrl cget -text] : " set var [$ctrl cget -variable] global $var if {[expr $$var]} { append outln "vybran" } else { append outln "nevybran" } puts $outln } }by to melo psat do shellu - momentalne nemuzu slouzit s otestovanim :-)