Мой графический интерфейс Tkinter слишком ... статичен? - PullRequest
5 голосов
/ 07 октября 2011

Я использую графический интерфейс Tkinter, чтобы инициировать процесс измерения и анализа, который в основном начинается с нажатой кнопки.Поскольку эти измерения могут занять некоторое время, я попытался включить индикатор выполнения, а именно этот:

http://tkinter.unpythonic.net/wiki/ProgressMeter

Но когда я запускаю процесс, все мое окно Tkinter превращается в бессмыслицупока измерение не будет выполнено и оно не перезагрузится, мой индикатор выполнения будет установлен на 100%.Это не то, чего я хотел.

Что там произошло?Я довольно новичок во всем этом программировании, поэтому у меня не все инструменты, я думаю.Нужно ли вводить отдельный поток или что-то в этом роде, чтобы измерение и основной цикл tkinter (это что?) Выполнялись одновременно?Если да, то как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 24 декабря 2011

Создайте индикатор выполнения (это фрагменты из моего кода, который обрабатывает файл размером 67 МБ.)

progress = ttk.Progressbar(bottommenuframe, orient=HORIZONTAL, length=100, maximum=190073,     mode='determinate')
progress.pack(side=RIGHT)

progress.start() ## this starts the progressbar

, затем во время анализа:

def analysisfunction():
    progress.step(1) 
    ##do some analysis
    root.after(0, analysisFunction)

    if job == complete:
        stop

Как я уже говорил, это будет работать смой файл 67MB и ткинтер.Надеюсь, это немного поможет:)

0 голосов
/ 07 октября 2011

звоните widget.update() / root_window.update() каждый раз, когда вы обновляете индикатор выполнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...