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 реагирует только на синюю компоненту цвета. остальные игнорирует.почему?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 1.3.2009, 15:57
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


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

Похоже у меня брешь в знаниях C++. Что сия запись означает? Есть догадка, что это что-то типа объявления 3х безымянных переменных, а скобки играют ту же роль что и в математических операциях, может быть компилер и берет только последнюю. Особенно странно становится, когда я узнаю, что QRgb не класс и не структура, а алиас типа для unsigned int, в котором кстати 4 байта. Альфаканал еще.

На warning'и компилятора вообще внимания не обращаешь?

warning: left-hand operand of comma has no effect
warning: right-hand operand of comma has no effect


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

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


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


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


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