Russian Qt Forum
Сентябрь 22, 2024, 08:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QLabel: setPixmal из другого треда!  (Прочитано 3919 раз)
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« : Май 27, 2006, 16:52 »

Есть тред который считывает картинку с камеры и преобразует ее в QImage.

Далее картинку надо отобразить в QLabel
примерно так

Код:
pMainWnd->m_l_hand_image->setPixmap(QPixmap::fromImage(pMainWnd->m_hand_image->scaled(240,320)));


так вот наблюдаются проблемы с синхронизацией!
я дак думаю один тред отрисовывает, а в это время другой меняет pixmap.

Что делать в такой ситуации?
Записан
Sergeich
Гость
« Ответ #1 : Май 27, 2006, 20:35 »

А че вообще за задача? Отображать видео с камеры? Я бы рисовал через OpenGL, получится намного быстрей.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Май 28, 2006, 14:16 »

эээ я уже думал над этим!
просто задача такая!
есть 3 камеры! с них идет video

Сделал общий тред для камер, последовательно чтение! Они стали друг друга тормозит. Сделал 3 треда, стало падать в QT!

C openGL тоже думал, но не уверен что он есть в Win/Lin по умолчанию!
Записан
Sergeich
Гость
« Ответ #3 : Май 28, 2006, 16:01 »

Цитировать
Сделал общий тред для камер, последовательно чтение! Они стали друг друга тормозит. Сделал 3 треда, стало падать в QT!

Это ты че-то с нитками намутил. Нельзя вызывать методы объектов, принадлежащих главной( гуевой ) нитке напрямую из остальных ниток. В 3-ке для этого надо юзать customEvent, в 4-ке можно через слот-сигналы.
Цитировать
C openGL тоже думал, но не уверен что он есть в Win/Lin по умолчанию!

В винде OpenGL присутствует всегда. В линухе обычно ( во всех последних дистрибутивах ) тоже, в крайнем случае всегда можно доустановить.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #4 : Май 28, 2006, 16:42 »

во! золотые слова! буду пробовать!
Цитировать

В 3-ке для этого надо юзать customEvent, в 4-ке можно через слот-сигналы.


Цитировать

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


просто приходится писать инструкции по установке! но про OPENGL надо будет подумать!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 23.