Как запустить асинхронную программу и программу на PyQt5 кореектно?

Рейтинг: 0Ответов: 0Опубликовано: 05.06.2023

Есть 2 программы, первая построена на блокирующих функциях опроса различных устройств через последовательные порты, общается с базой данных и иногда шлет информацию на сервер. Так как много блокирующих операций была написана с применением библиотеки asyncio. Вторая программа, выводит различные сообщения и заставки на экран, была написана на PyQt5.

Пример запуска программ:


def start_qt_widgs():
    app = QApplication(sys.argv)
    screen = MainWindow()
    screen.show()
    sys.exit(app.exec())


th = threading.Thread(target=start_qt_widgs,) #запуск программы на PyQt5 
th.start()
    
asyncio.run(main()) #запус асинхронной программы 

Когда происходит запуск, программы работают корректно, но я получаю предупреждение - WARNING: QApplication was not created in the main() thread. Как я понимаю, это связанно с запуском приложения написанном PyQt5 в отдельном потоке, а его нужно запускать в родительском. Вопрос, какие проблемы могут возникнуть? И как можно реализовать передачу данных между двумя этими программами, если запускать их на одном компьютере? В текущей реализации программы общаются через очереди.

Ответы

Ответов пока нет.