Próbuję nauczyć się używać QThreads w aplikacji PyQt Gui. Mam rzeczy, które działają przez jakiś czas, z (zwykle) punktami, w których mogłem zaktualizować Gui, ale chciałbym podzielić główne prace na swój własny wątek (czasem coś się zacina, i byłoby miło mieć w końcu anuluj/spróbuj ponownie, co oczywiście nie działa, jeśli Gui jest zamrożone, ponieważ główna pętla jest zablokowana).Przykład prawidłowego użycia QThread w PyQt?
Przeczytałem https://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/. Ta strona mówi, że ponowne wdrożenie metody run
nie jest sposobem na zrobienie tego. Problem, który mam, polega na znalezieniu przykładu PyQt, który ma główny wątek robiący Gui i wątek roboczy, który nie robi tego w ten sposób. Wpis na blogu dotyczy języka C++, więc chociaż przykłady pomagają, wciąż jestem trochę zagubiony. Czy ktoś może wskazać mi przykład prawidłowego sposobu na to w Pythonie?
To wygląda DUP z [wątku tła z QThread w PyQt] (http://stackoverflow.com/questions/6783194/background-thread-with-qthread-in-pyqt). Drugi przykład zaakceptowanej odpowiedzi wygląda na proste tłumaczenie kodu C++ z bloga, który podłączyłeś. – abarnert
Czy napisałeś również natywny kod wątków Pythona (z 'threading.Thread' itp.)? Jeśli nie, możesz najpierw popracować nad przykładami. (Zobacz także [Wątek w aplikacji PyQt: użyj wątków Qt lub wątków Pythona] (http://stackoverflow.com/questions/1595649/threading-in-a-pyqt-application-use-qt-threads-or-python- wątki), aby sprawdzić, czy potrzebujesz jeszcze QThread.) – abarnert
@abarnert Dzięki, myślę, że ten link był właśnie tym, czego szukałem. Widziałem drugi link i zdecydowałem, że powinienem używać QThreads, ponieważ chciałem móc wysyłać szczeliny/sygnały między wątkami. Wiedziałem, że 'threading.Thread' istnieje, ale wcześniej go nie użyłem. Zrobiłem dużo wyszukiwania, a nawet zobaczyłem pierwszy link, przejrzałem go, zobaczyłem 'def run' i ruszyłem dalej, nie zdając sobie sprawy z pokazanych w obu kierunkach! – Azendale