GUI и поток |
Здравствуйте, гость ( Вход | Регистрация )
GUI и поток |
zss |
3.11.2010, 23:28
Сообщение
#1
|
Участник Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть поток. который обновляет данные GUI. Это можно сделать с помощью сигналов или событий.
Но тут есть обратная задача - из потока опросить актуальное состояние GUI. Например, опросить у списка выделенный элемент. Встает вопрос как прочитать из потока актуальное состояние GUI с учетом синхронизации (действиями пользователя). |
|
|
ernie |
4.11.2010, 13:56
Сообщение
#2
|
Участник Группа: Участник Сообщений: 130 Регистрация: 13.5.2010 Из: Irkutsk Пользователь №: 1712 Спасибо сказали: 11 раз(а) Репутация: 1 |
Так же сигналами и слотами.Т.е из потока шлешь сигнал,типа опросить,а гуй отправляет своё состояние в поток по этому запросу,скажем так
|
|
|
zss |
4.11.2010, 15:04
Сообщение
#3
|
Участник Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
ernie |
4.11.2010, 15:53
Сообщение
#4
|
Участник Группа: Участник Сообщений: 130 Регистрация: 13.5.2010 Из: Irkutsk Пользователь №: 1712 Спасибо сказали: 11 раз(а) Репутация: 1 |
как я думаю,будет 2 пары сигнал - слот , скажем слот firstThread::needInformation() и сигнал secondThread::needInformation() ,2ая пара - слот secondThread::getInformation(здесь та информация которая нужна тебе,скажем QString status) и сигнал firstThread::sendInformation(QString status), и в слоте firstThread::needInformation() делаем emit sendInformation("good"),скажем.Вот как то так я это вижу,можно расширить в зависимости от твоих потребностей,скажем в needInformation добавить параметром какую ты хочешь информацию запросить и уже в зависимости от этого параметры в sendInformation подставлять
|
|
|
hkarel |
9.11.2010, 12:16
Сообщение
#5
|
Студент Группа: Участник Сообщений: 25 Регистрация: 25.5.2009 Пользователь №: 771 Спасибо сказали: 0 раз(а) Репутация: 0 |
Но тут есть обратная задача - из потока опросить актуальное состояние GUI. Например, опросить у списка выделенный элемент. Встает вопрос как прочитать из потока актуальное состояние GUI с учетом синхронизации (действиями пользователя). Простой директ-коннект из рабочего потока в GUI-поток пробовали? Параметр опроса передавать по ссылке. Тут может быть загвоздка если обращаться напрямую к методам визуальных компонентов, могут заругаться, типа к нам можно только из GUI-потока. Для опроса обычных членов класса или структур проблем как правило не возникает. Естественно, про механизмы синхронизации забывать не стоит. |
|
|
Текстовая версия | Сейчас: 14.11.2024, 7:34 |