Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Статус бар и 2-й поток

Автор: RazrFalcon 14.1.2011, 0:48

В потоке происходит обработка изображений.
Когда началась обработка, надо сменить статут с именем изображения.
Как это сделать из потока?
Доппоток только один, что бы гуй не зависал (темнел в моем случае). Прога висит в трее.

Автор: sidsukana 14.1.2011, 1:00

Я делал второй поток и вызывал из него QApplication::postEvent. На интерефейсе получал ивент с данными из второго потока и применял их на статус бар - все работало без проблем и глюков :)
Как пример если разберешь код то пожалуйста https://bitbucket.org/sidsukana/qt_honor_updater

Автор: wiz29 14.1.2011, 18:24

Цитата(sidsukana @ 14.1.2011, 1:00) *
Я делал второй поток и вызывал из него QApplication::postEvent. На интерефейсе получал ивент с данными из второго потока и применял их на статус бар - все работало без проблем и глюков :)
Как пример если разберешь код то пожалуйста https://bitbucket.org/sidsukana/qt_honor_updater

Как альтернативу можно использовать механизм "сигналов/слотов". Но это, на мой взгляд, дело вкуса и может зависеть от архитектуры конкретного ПО.

Автор: RazrFalcon 14.1.2011, 19:14

А как сделать сигнал чтобы из потока меня статус бар?
Я из потока даже доступ к нему не могу получить, как и к гую вообще.

Автор: PAFOS 26.1.2011, 9:50

1. Сделай у потока сингал void progress(int).
2. При запуске потока соедини этот сигнал потока с слотом прогресс бара setValue(int)
3. В потоке вызывай сигнал emit progress( value )

Все просто)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)