Статус бар и 2-й поток |
Здравствуйте, гость ( Вход | Регистрация )
Статус бар и 2-й поток |
RazrFalcon |
14.1.2011, 0:48
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В потоке происходит обработка изображений.
Когда началась обработка, надо сменить статут с именем изображения. Как это сделать из потока? Доппоток только один, что бы гуй не зависал (темнел в моем случае). Прога висит в трее. |
|
|
sidsukana |
14.1.2011, 1:00
Сообщение
#2
|
Участник Группа: Участник Сообщений: 158 Регистрация: 23.12.2010 Из: Челябинск Пользователь №: 2296 Спасибо сказали: 10 раз(а) Репутация: 2 |
Я делал второй поток и вызывал из него QApplication::postEvent. На интерефейсе получал ивент с данными из второго потока и применял их на статус бар - все работало без проблем и глюков
Как пример если разберешь код то пожалуйста https://bitbucket.org/sidsukana/qt_honor_updater |
|
|
wiz29 |
14.1.2011, 18:24
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Я делал второй поток и вызывал из него QApplication::postEvent. На интерефейсе получал ивент с данными из второго потока и применял их на статус бар - все работало без проблем и глюков Как пример если разберешь код то пожалуйста https://bitbucket.org/sidsukana/qt_honor_updater Как альтернативу можно использовать механизм "сигналов/слотов". Но это, на мой взгляд, дело вкуса и может зависеть от архитектуры конкретного ПО. |
|
|
RazrFalcon |
14.1.2011, 19:14
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
А как сделать сигнал чтобы из потока меня статус бар?
Я из потока даже доступ к нему не могу получить, как и к гую вообще. Сообщение отредактировал RazrFalcon - 14.1.2011, 19:15 |
|
|
PAFOS |
26.1.2011, 9:50
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
1. Сделай у потока сингал void progress(int).
2. При запуске потока соедини этот сигнал потока с слотом прогресс бара setValue(int) 3. В потоке вызывай сигнал emit progress( value ) Все просто) |
|
|
Текстовая версия | Сейчас: 23.11.2024, 0:18 |