2013-06-28 5 views
0

У меня есть приложение QT.Приложение Qt с несколькими потоками

У меня есть нить (ex thread1), которая показывает мой главный фонарь (так что это отличается от основного потока).

У меня также есть своя тема (ex thread2), должен уведомить thread1 об обновлении моего графического интерфейса. Есть быстрый способ сделать это? ex: thread2 может решить обновить изображение: поэтому он должен уведомить thread1 выполнить метод changeImage().

Если я запускаю этот метод непосредственно из thread2, мое приложение будет иметь сбой. Я должен использовать pthread.

ответ

3

Только основной поток должен обновлять GUI (для ограничений, связанных с графическими системами).

Однако Qt имеет расширенную поддержку потоков, разрешенную соединениями сигнальных слотов по потокам. В действительности, другие потоки должны сообщать основную резьбу с использованием сигналов (emit my_signal() см. http://qt-project.org/doc/qt-4.8/signalsandslots.html) или используя QCoreApplication::postEvent (http://qt-project.org/doc/qt-4.8/qcoreapplication.html#postEvent-2)