У меня есть приложение QT.
У меня есть нить thread1), который показывает мое основное окно (так что это отличается от основного потока).
У меня также есть свой собственный поток (например, thread2) должен уведомить поток1 об обновлении моего графического интерфейса.
Есть быстрый способ сделать это?
Например: thread2 может решить обновить изображение: поэтому он должен уведомить thread1 о выполнении метода. changeImage()
,
Если я запускаю этот метод непосредственно из thread2, мое приложение будет иметь сбой.
Я должен использовать pthread.
Только основной поток должен обновлять графический интерфейс (для ограничений, связанных с графическими системами).
Тем не менее, 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 )
Других решений пока нет …