Форум сайта python.su
Ну если задача одна, тогда зачем в отдельном треде запускать? Пусть работает себе и в интерфейс кидает информацию о процессе выполнения. Обновлять интерфейс и все будет норм. Или интерфейс должен при этом нормально отрабатывать другие команды?
По сравнению с вЫндовсом, линь это просто совершенство. Но да, тоже далеко не идеальная ось. Идеального не бывает. Маковские щупал, к слову. Не зацепили вообще.
Я не знаю, что такое “спичит”. Если не сложно, то поясните, пожалуйста.
P.S. Преимущества от менеджеров огромные, но на больших задачах. На простых задачах - это оверхед.
Отредактировано 4kpt_IV (Янв. 15, 2017 21:10:17)
Офлайн
Вы разве не прочитали труд Дональда Кнута “Искусство программирования” где упоминается это слово?! А если серьезно - вы написали “если приспичит”, я написал “не спичит”. Ехать за булкой хлеба на БелАЗе.))) Приложение виснет на 40 секунд без потока.
Отредактировано Rudium (Янв. 15, 2017 21:44:04)
Офлайн
А у Вас выполняется полноценно и гуй отрабатывает и позволяет выполнять другие задачи?
Офлайн
Абсолютно верно. Пока обрабатывается фото в отдельном потоке, пользователь имеет возможность скопировать данные из форм в буфер нажатием кнопок и перетаскивать окно. Без потока приложение не отвечает. Насколько это полноценно - не знаю, но для пользователя нет больше необходимых действий
Отредактировано Rudium (Янв. 15, 2017 23:16:04)
Офлайн
Код в студию, если не секрет. Аж интересно стало. Я знаю, как отвязывать от основного потока исполнения гуя с помощью потоков, но у меня это получилось слегка сложновато. Может у Вас есть проще решение. Было бы интересно глянуть.
Офлайн
Код большой, привожу существенные отрывки. Реализация класса 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()
Отредактировано Rudium (Янв. 16, 2017 00:15:45)
Офлайн
Спасибо. Какой tkiner? Версия python?
Офлайн
tkinter 8.6. python 3.5.2 сейчас точно посмотрел.
Отредактировано Rudium (Янв. 16, 2017 00:24:44)
Офлайн
Да. Магия. Такие фокусы на 2.7 не работали. Таки улучшают они tkiner. Хотя, по-моему, уже поздно пить боржоми, если почки отвалились
P.S. Спасибо за информацию. Буду знать.
Офлайн
Я думаю скорее улучшают Тk. tkinter cледует за ним.
Офлайн