У меня возникают трудности с определением потоков в PyQt5. Я сделал GUI для сценария, который я использую на работе, чтобы поделиться со своим коллегой. Сценарий выполняет автоматизацию браузера селена с некоторыми переменными, которые он получает от GUI. Сценарий находится в другом файле .py и не наследуется ни от одного класса. Я просто создаю его экземпляр в mainapp.py, когда нажимаю кнопку запроса. (Да, и скрипт ничего не возвращает, я добавил возвращаемое значение True для тестирования)
mainapp.py
class OutputCheckerSub(Ui_OutputChecker):
def __init__(self):
super().__init__()
........
........
# Connecting Query button
self.query_button.clicked.connect(self.run_output_script)
def run_output_script(self):
self.output_script.run_script()
......
Это запускает скрипт с правильными переменными, но выдает GUI приложение.
Мне удалось несколько поработать с потоками (без установки переменных), но через 10 секунд происходит сбой.
multithreading.py
class OutputScriptThread(QThread):
signal = pyqtSignal(bool)
def __init__(self):
super().__init__()
def run(self):
output_checker_script = output_checker.OutputCheckerScript()
state = output_checker_script.run_script()
self.signal.emit(state)
mainapp.py с Неправильный поток
class OutputCheckerSub(Ui_OutputChecker):
def __init__(self):
super().__init__()
.......
.......
# Connecting Query button
self.query_button.clicked.connect(self.run_output_script)
self.outputcheck_thread = multithreading.OutputScriptThread()
def run_output_script(self):
self.outputcheck_thread.start()
.....
Еще одна сложная часть - передача переменных из одного класса в другой. в настоящее время мой GUI напрямую изменяет переменные экземпляра сценария. Если я получу работу потоков, где я должен установить переменные? Из темы?