Я хотел бы создать библиотеку, построенную поверх QTcpServer
и QTcpSocket
для использования в программах, которые не имеют циклов событий в своих функциях main
(поскольку цикл событий Qt блокируется и не обеспечивает достаточного разрешения времени для требуются операции реального времени).Можно ли создавать локальные циклы событий без вызова QApplication :: exec()?
Я надеялся обойти это, создав локальные циклы событий внутри класса, но они, похоже, не работают, если я не позвонил app->exec()
в первую функцию. Есть ли способ создать локальные циклы событий и разрешить связь сигнала/слота в потоке без наличия цикла событий на уровне приложения?
Я уже посмотрел Is there a way to use Qt without QApplication::exec()?, но ответ не помогает, потому что похоже, что решение добавляет локальный цикл событий, но не удаляет цикл приложения.
порождает новый поток, который имеет 'QApplication :: exec()' и сохраняет его в качестве «основного потока»? –
Я попробую. Единственным недостатком является то, что даже если это работает, вероятно, это исключает возможность использования библиотеки в будущем с использованием реальных приложений Qt, поскольку вы, разумеется, не можете иметь два вызова 'QApplication :: exec' –