Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qwyllum от Июль 30, 2013, 06:49



Название: Qt Linux проблема с цветами
Отправлено: qwyllum от Июль 30, 2013, 06:49
Доброго времени суток, уважаемые форумчане! С-но, есть код:
Код:
void Shape::paint(QPainter *painter,
                    const QStyleOptionGraphicsItem *option,
                    QWidget *widget)
{
//проверка на выделение если выделен - красный контур
if(isSelected())
{
   painter->setPen(Qt::red);
 
}
else
{
    painter->setPen(Qt::black);
}
/////////////////////////////////////////////////////

QPen pen;

painter->setPen(pen);
painter->drawPath(m_shape);//сформированный контур объекта

painter->drawText(m_shape.boundingRect(), name);//имя объекта
}

Когда он писался, то проверялся на Windows и все отлично работало. При сборке под Liunx(Ubuntu 13.04) при выделении объекта мышью, его цвет не меняется, хотя все остальные функции - перемещение объекта и т.п. по-прежнему работают. Поэтому возник вопрос - что нужно исправить, чтобы код заработал как раньше?

Пробовал сделать вот так:
Код:
if(isSelected())
{
    QColor red=QColor(255,0,0);
   painter->setPen(red);

}

Но результат по-прежнему печален.


Название: Re: Qt Linux проблема с цветами
Отправлено: GreatSnake от Июль 30, 2013, 07:49
Но результат по-прежнему печален.
Правильно, т.к. последующие
Код
C++ (Qt)
QPen pen;
 
painter->setPen(pen);
сбрасывают цвет в дефолтный, т.е. в чёрный.