Сделать рабочий поток ждать входа пользователя в поток графического интерфейса? Python / PyQt
У меня есть многопоточное приложение, написанное на Python, в котором один поток «заботится» о графическом интерфейсе, а другой – рабочий поток. Однако в какой-то момент рабочий поток, посреди обработки данных, излучает сигнал с QString, который подключается к функции display_image () в потоке графического интерфейса пользователя. Функция display_image () требует, чтобы пользователь вводил строку текста.
Мой вопрос: как я могу заставить рабочий поток ждать обработки данных, пока функция display_image () не вернет значение, то есть пока пользователь не нажмет кнопку OK?
GUI.py
class GUI(QMainWindow): def __init__(self, parent=None): super, etc self.worker = worker.Worker() def display_image(self, image): """wait for user input"""
Worker.py
class Worker(QThread): def __init__(self, parent=None): super, etc def run(self): self.emit(SIGNAL("imageFound(QString)"), image) #wait until... self.inputted_user_text = inputted_user_text # < this is what I need to figure out
- Синхронизация активности в PyQt QThreads
- производитель / потребительский многопоточность в python
- Не удалось запустить новую тему
- Нити Python и GIL
- Где Django является потокобезопасным, а где нет?
Самый простой способ связи между потоками – это модуль Queue . Попросите поток GUI поставить «хорошее» значение и заставить работника сделать блокировку, чтобы получить хороший сигнал.
- Остановка потоков, созданных BaseHTTPServer с помощью ThreadingMixin
- Многопоточность внутри работника сельдерея
- выполняет ли профайл профиля профиля внутри потоков?
- Обновление элементов GUI в MultiThreaded PyQT
- не может распараллеливать (потоки) telnet-соединения с python
- Вызов Scrapy из другого файла без потоковой передачи
- глобальная переменная python 3.2 не обновляется, когда она в потоке
- Как увидеть трассировку на сервере xmlrpc, а не на клиенте?
- Ошибка с глобальными переменными не определена в функции потока на python