Работающий цикл обработки событий является необязательным и предназначен для каждого потока. Если вы не обрабатываете события в данном потоке, он не нужен.
invokeMethod
не имеет зависимостей от цикла событий, если вы вызываете методы для объектов, которые живут в потоке, где вы вызываете этот метод. Если вы вызываете методы для объектов, которые живут в других потоках, указанные потоки должны будут запускать цикл событий, даже если только периодически. В конце концов, они могут позвонить processEvents
в четко определенных точках. Вызов слота между потоками эквивалентен публикации события в очереди событий потока.
Я проверю, работает ли механизм плагинов без экземпляра QCoreApplication
, но этот экземпляр вам не повредит. Просто создай это и забудь об этом. Вы не должны запускать цикл обработки событий в основном потоке или в любом другом потоке.
Обратите внимание, что QPluginLoader
- это не то же самое, что QLibrary
, вам нужно изучить свои потребности и выяснить, какие вы хотите.
Не-графический пользователь QCoreApplication
может быть создан в произвольном потоке , и его цикл обработки событий может выполняться там. В Windows QApplication
также может быть создан в произвольном потоке.