2017-02-01 5 views
-1

일부 코드가 실행 중일 때 Tcl/tk의 창 진행률 표시 줄에 코드를 작성하는 데 도움이 필요합니다. 진행률 표시 줄 창은 화면의 왼쪽 또는 오른쪽에있을 수 있습니다.tcl의 별도 창에 진행률 표시 줄 표시

+0

코드를 작성하지 않으므로 시도한 코드를 제공 한 후에 조언을 제공합니다. – jhhoff02

답변

1

고대 버전을 사용하고 있지 않다면 (그리고 업그레이드!) Tk로 진행되는 진행률 표시 줄이 있어야합니다. ttk::progressbar은 꽤 사용하기 쉽고 몇 가지 패턴을 지원합니다. 가장 쉬운 방법 중 하나는 글로벌 변수에 바인딩하는 것입니다

set progress 0 
pack [ttk::progressbar .p -variable progress] 

# Run the progress bar from 0% to 100%, one step every 0.1s, after a 1s pause 
proc updateProgress {} { 
    global progress 
    if {$progress < 100} { 
     incr progress 
     after 100 updateProgress 
    } 
} 
after 1000 updateProgress 

주요 까다로운 점은 (업데이트 할 수있는 기회를 갖도록 진행 표시 줄을 사용하는 동안 이벤트 루프 서비스를 계속해야되는 현재 위젯 테마에 필요할 수도 있습니다.) Tk로 다른 작업을 할 때와 마찬가지로. CPU가 많은 작업을 수행하는 경우 update 번으로 전화를 추가해야 할 수도 있습니다 (이상적으로는 초당 10 번 이상). 그러면 다른 부분에 재 호출 할 수 있으므로주의가 필요합니다. 작업하는 동안 GUI가 이벤트를 생성합니다.

+0

제안 해 주셔서 감사합니다. – Avi