crossplatform.ru

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

Andrewshkovskii
  опции профиля:
сообщение 1.3.2009, 15:25
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

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




Репутация:   1  


Есть paintEvent :
void Test1Widget::paintEvent(QPaintEvent * event)
{
    PaintForTest1 = new QPainter(this);
    PaintForTest1->setRenderHint(QPainter::Antialiasing, true);
    QRgb rgb;
    rgb = (this->RedSlider->value(), this->GreenSlider->value(), this->BlueSlider->value());
    QColor mycolor(rgb);
    PaintForTest1->setBrush(QBrush(mycolor, Qt::SolidPattern));
    PaintForTest1->drawRect(1, 1, 100, 100);
}


3 слайдера(их значения от 0 до 255) соединены с виджетом вот так :
void Test1Widget::SetConnections()
{
connect(RedSlider,SIGNAL(valueChanged(int)),this,SLOT(update()));
connect(GreenSlider,SIGNAL(valueChanged(int)),this,SLOT(update()));
connect(BlueSlider,SIGNAL(valueChanged(int)),this,SLOT(update()));
}


Проблема : QBrush реагирует только на синюю компоненту цвета. остальные игнорирует.почему?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 1.3.2009, 16:54
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Andrewshkovskii @ 1.3.2009, 18:25) *
rgb = (this->RedSlider->value(), this->GreenSlider->value(), this->BlueSlider->value());

надо заменить на:
Цитата
rgb = qRgb(this->RedSlider->value(), this->GreenSlider->value(), this->BlueSlider->value());
и вроде всё

Цитата(kwisp @ 1.3.2009, 19:02) *
подозреваю что PaintForTest1 член класса.
если так то под него каджый раз память выделяться будет при каждом новом вызове paintEvent.
а где память освобождается?
хорошее замечание.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 30.6.2025, 8:48