|
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 40
|
||||||
Tkinter и многопоточность02.08.2015, 01:05. Показов 12297. Ответов 6
Метки нет (Все метки)
Здравствуйте, возникла потребность создать приложение, с графическим интерфейсом, есть функция, которая при обработки занимает достаточное время, чтоб пользователь начал задаваться вопросом, а работает ли приложенька или умерла. Для этого хочу повесить на главное окно (или дочернее) прогресс бар (неопределенный по времени) на время пока работает функция. Конечно такого типа варианты не работают:
0
|
||||||
| 02.08.2015, 01:05 | |
|
Ответы с готовыми решениями:
6
Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter?
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 02.08.2015, 01:22 | |
|
Для работы с потоками используется модуль threading, но tkinter не потобезопасная библиотека, по этому ты не можешь просто запустить функцию lets_go в отдельном потоке.
Тебе нужно запускать в отдельном потоке обработку данных, в этом потоке будет происходить обработка и этот поток будет как-то уведомлять основной о своём статусе. Предавать уведомления можно с помощью какого нибудь потокозопасного объекта. Поток складывает нужную информацию или какие-то уведомления в твой объект, на пример Queue.Queue, а в главном потоке из этого объекта информация извлекается и отдаётся пользователю. В случае tkinter забирать из очереди сообещния и отдавать их пользователю нужно с помощью метода after. Добавлено через 1 минуту Вообще я бы советовал тебе использовать pyqt, это очень удобная и ооочень функциональная библиотека в отличии от tkinter + там реализован механизм сигналов с помощью, которого просто оочень удобно передавать данные из отдельного потока в основной.
1
|
|
|
|
|||||||
| 03.08.2015, 17:18 | |||||||
Сообщение было отмечено Efresco как решение
Решение
Просто бьёте свой код на несколько последовательно выполняющихся функций, в конце каждой изменяете переменную ProgressBar'a и вызываете на нём update(). Или прямо между командами несколько update'ов пишете и всё. Короче, суть Вы поняли.
2
|
|||||||
|
2 / 2 / 1
Регистрация: 09.04.2015
Сообщений: 52
|
|||||||||||
| 04.08.2015, 11:58 | |||||||||||
|
Фаер, а какой смысл второй раз писать:
0
|
|||||||||||
|
|
|
| 04.08.2015, 12:27 | |
|
deadmensch, так я просто скопировал скрипт ТС. Ему, видимо, так нужно.
Например, при сборке через cx_Freeze такой импорт имеет смысл, потому что вложенные модули, в частности, tkinter'овские, теряются.
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 40
|
|
| 05.08.2015, 23:13 [ТС] | |
|
Фаер, Всё получилось, спасибо
0
|
|
|
0 / 0 / 0
Регистрация: 07.08.2015
Сообщений: 49
|
|
| 07.08.2015, 00:18 | |
|
Хоть и не я задавал тему, но мне вы тоже помогли
0
|
|
| 07.08.2015, 00:18 | |
|
Помогаю со студенческими работами здесь
7
Как сделать окно tkinter неактивным по нажатии на него. Оверлей на Tkinter Ошибка при попытке открыть программу через консоль, import tkinter as tk ModuleNotFoundError: No module named 'tkinter'
Tkinter tkinter Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|