crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Прозрачность в потоке, Не хочет работать 4.7
cupersuper
  опции профиля:
сообщение 9.4.2015, 14:42
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 5.5.2011
Пользователь №: 2654

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! Qt 4.7. Вне потока код работает нормально:

QImage IMG;
QPainter PAINTER;
QPen PEN;

IMG.load("img.jpg");
PAINTER.begin(&IMG);

PEN.setColor("#ff0000");
PAINTER.setOpacity(0.30);
PAINTER.setPen(PEN_T);
PAINTER.drawText( 20, 20, QString::fromLocal8Bit("Тест"));

Но когда помещаю в поток drawText крашит:
QObject::killTimers: timers cannot be stopped from another thread

Если убрать метод:
PAINTER.setOpacity(0.30);
Или передать в него 0 или 1, начинает работать.

Пробовал менять его на:
QColor clr = QColor("#ff0000");
PEN.setColor( QColor( clr.red(), clr.green(), clr.blue(), 254 ) );
Не помогает

Может кто знает какой-нибудь "костыль"?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
wiz29
  опции профиля:
сообщение 9.4.2015, 16:47
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Что именно помещается в поток? Вызов отдельного метода?
И что означает фраза "Вне потока работает нормально...", что под этим понимается?

Сообщение отредактировал wiz29 - 9.4.2015, 16:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 9:13