2017-02-01 4 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. Если вы выполняете тяжелую работу с процессором, вам может потребоваться время от времени добавлять звонки в update (как минимум 10 раз в секунду в идеале), и это, в свою очередь, требует осторожности, потому что у вас могут возникать проблемы с повторной установкой с другими частями Создание графического пользовательского интерфейса во время работы.

+0

Спасибо за ваши предложения – Avi

Смежные вопросы