2011-09-22 2 views
0

저는 frame1이라는 이름의 tcl에서 프레임을 사용했습니다. 이제 proc을 설정하여이 모든 프레임을 삭제합니다. 내가 원하는 것은이 프레임을 새로운 변수로 이동시키고 같은 이름의 새로운 프레임을 만드는 것입니다. 내 코드는 다음과 같습니다기존 프레임을 새 프레임으로 이동하고 이전 이름을 사용하여 새 프레임을 만듭니다.

proc DestroyAll {} { 
    global parent_widget 
    global new_widget 
    destroy .sf.frame.main.xName 
    for {set i 0} {$i < $Count} {incr i} { 
     destroy .sf.frame.main.parameter($i) 
    } 
    destroy .sf.frame.main.buttons 
    destroy .sf.frame.buttons 
    destroy .sf.frame.main 
    destroy .sf.frame 
    destroy .sf 
} 

Populatenewdata는 --- >>이 PROC 생성하고 나는이 프레임을 파괴하려는 해달라고 김포 프레임 을 채우고,하지만 난 새로운 프레임을 만들려고합니다. 이 프레임의 채우기 절차가 매우 길고 루프를 사용하여 수행 할 수 없기 때문에이 작업을 수행 할 수있는 방법이 있습니까?

답변

2

Tk는 당신에게 재 위젯을 허용하지 않습니다. 그들의 이름은 그 순간부터 당신이 그들을 파괴하는 순간까지 고쳐집니다. (당신은 그들을 시각적으로packgrid에 적합한 -in 옵션으로 내부에 다른 위젯을 표시 할 수 있습니다,하지만 엄격하게 시각 효과입니다.)

이 가능 나은 그래서 당신은 쉽게 할 수있는 위젯을 백업 모델을 관리하는 것입니다 뷰를 해당 모델에 다시 작성 하시겠습니까? (대답은 사용중인 위젯에 달려 있습니다. text으로 8.536에서 복제 할 수 있지만 이나 text 위젯을 재 작성하는 것은 그리 쉬운 일이 아닙니다.하지만 일반적으로 매우 쉽습니다.)보다 강력하게 작업하는 것을 다시 생각해보십시오. MVC의 조건이 도움이 될 것입니다.