Как сделать ткинтер GUI быстрее? - PullRequest
0 голосов
/ 14 марта 2020

всем,

В настоящее время я работаю над GUI с tkinter, который состоит из текстового виджета, который должен действовать как XML редактор кода. Я использую тегирование для цветовой маркировки определенных ключевых слов, таких как теги xml, но, к сожалению, эта операция очень медленная, и вы можете видеть, что поток gui занимает много времени, чтобы выделить все. Есть ли способ ускорить это (например, несколько потоков, которые изменяют gui или что-то подобное)? Или есть GUI фреймворк, позволяющий создавать более отзывчивый интерфейс?

1 Ответ

0 голосов
/ 14 марта 2020

Многие GUI наборы инструментов (включая tkinter) не являются поточно-ориентированными; поэтому вам не следует отправлять вызовы GUI из нескольких потоков.

Если вы хотите узнать, почему программа работает медленно, обычно вам нужно профиль . Профилировщик - это инструмент, который помогает вам увидеть, где программа проводит свое время Python имеет встроенный профилировщик в виде модуля cProfile. Например, для профилирования моего скрипта unlock-excel.py я бы использовал следующую команду:

python3 -m cProfile -s cumulative unlock-excel.py ~/foo.xlsm | less

Он также производит вывод для tkinter программ, таких как unlock-excel.pyw;

python3 -m cProfile -s cumulative unlock-excel.pyw

В последнем случае tkinter вызовы будут отображаться, например, как __init__.py:1281(mainloop) или {method 'call' of '_tkinter.tkapp' objects}.

С этим вы сможете определить, медлительность в вашем коде или если это происходит в tkinter.

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