Chciałbym utworzyć bibliotekę zbudowaną na bazie QTcpServer
i QTcpSocket
do użytku w programach, które nie mają pętli zdarzeń w ich funkcjach main
(ponieważ pętla zdarzeń Qt blokuje i nie zapewnia wystarczającej rozdzielczości czasu dla wymagane operacje w czasie rzeczywistym).Czy można utworzyć lokalne pętle zdarzeń bez wywoływania funkcji QApplication :: exec()?
Miałem nadzieję ominąć to, tworząc lokalne pętle zdarzeń w klasie, ale nie wydają się działać, chyba że najpierw zadzwoniłem pod numer app->exec()
w głównej funkcji. Czy istnieje sposób na utworzenie lokalnych pętli zdarzeń i zezwolenie na komunikację sygnał/gniazdo w wątku bez pętli zdarzeń na poziomie aplikacji?
Już patrzyłem na Is there a way to use Qt without QApplication::exec()?, ale odpowiedź nie pomaga, ponieważ wydaje się, że rozwiązanie dodaje lokalną pętlę zdarzeń, ale nie usuwa pętli aplikacji.
spawn nowy wątek, który ma 'QApplication :: exec()' i utrzymać go przy życiu jako "główny wątek"? –
Spróbuję. Jedynym minusem jest to, że nawet jeśli działa to prawdopodobnie uniemożliwi mi korzystanie z biblioteki w przyszłości z rzeczywistymi aplikacjami Qt, ponieważ z pewnością nie możesz mieć dwóch wywołań do 'QApplication :: exec' –