Найти - Пользователи
Полная версия: Tkinter. Зависает графический интерфейс
Начало » GUI » Tkinter. Зависает графический интерфейс
1 2 3
4kpt_IV
Ну если задача одна, тогда зачем в отдельном треде запускать? Пусть работает себе и в интерфейс кидает информацию о процессе выполнения. Обновлять интерфейс и все будет норм. Или интерфейс должен при этом нормально отрабатывать другие команды?

По сравнению с вЫндовсом, линь это просто совершенство. Но да, тоже далеко не идеальная ось. Идеального не бывает. Маковские щупал, к слову. Не зацепили вообще.

Я не знаю, что такое “спичит”. Если не сложно, то поясните, пожалуйста.

P.S. Преимущества от менеджеров огромные, но на больших задачах. На простых задачах - это оверхед.
Rudium
Вы разве не прочитали труд Дональда Кнута “Искусство программирования” где упоминается это слово?! А если серьезно - вы написали “если приспичит”, я написал “не спичит”. Ехать за булкой хлеба на БелАЗе.))) Приложение виснет на 40 секунд без потока.
4kpt_IV
А у Вас выполняется полноценно и гуй отрабатывает и позволяет выполнять другие задачи?
Rudium
Абсолютно верно. Пока обрабатывается фото в отдельном потоке, пользователь имеет возможность скопировать данные из форм в буфер нажатием кнопок и перетаскивать окно. Без потока приложение не отвечает. Насколько это полноценно - не знаю, но для пользователя нет больше необходимых действий
4kpt_IV
Код в студию, если не секрет. Аж интересно стало. Я знаю, как отвязывать от основного потока исполнения гуя с помощью потоков, но у меня это получилось слегка сложновато. Может у Вас есть проще решение. Было бы интересно глянуть.
Rudium
Код большой, привожу существенные отрывки. Реализация класса Photo опущена.
   
class MainWindow:
    def__init__(self):
        self.root = TK()
        ....
    def create_photo(self):
        thread = threading.Thread(target=self.change_photo)
        thread.start()
    def change_photo(self):
        #photo.change_photo()
        #работаем с фото. Отправляем сообщения в GUI
main_window = MainWindow()
photo = Photo()
4kpt_IV
Спасибо. Какой tkiner? Версия python?
Rudium
tkinter 8.6. python 3.5.2 сейчас точно посмотрел.
4kpt_IV
Да. Магия. Такие фокусы на 2.7 не работали. Таки улучшают они tkiner. Хотя, по-моему, уже поздно пить боржоми, если почки отвалились

P.S. Спасибо за информацию. Буду знать.
Rudium
Я думаю скорее улучшают Тk. tkinter cледует за ним.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB