Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Hrundel от Ноябрь 27, 2016, 17:58



Название: event'ы в Qwidget
Отправлено: Hrundel от Ноябрь 27, 2016, 17:58
Всем привет,

наблюдаю странное поведение класса - не понимаю чего я не понимаю.

Код
C++ (Qt)
void DiskButton::paintEvent(QPaintEvent* e)
{
       QPainter painter_(this);
 
QPainterPath bg;
bg.moveTo(0, 0);
bg.addRect(0,0,this->width()-1, this->height()-1);
bg.closeSubpath();
 
painter_.setBrush(brush_);
painter_.setPen(QPen(QColor(150, 150, 150)));
painter_.drawPath(bg);
}
 
void DiskButton::enterEvent(QEvent* e)
{
brush_ = QBrush(QColor(255, 0, 0));
}
 
void DiskButton::leaveEvent(QEvent* e)
{
brush_ = QBrush(QColor(255, 255, 255));
}
 

Хотя события перехватываются и значения сохраняются, но в событии отрисовки браш всегда белый
ПОЧЕМУ МЛИН????  ??? ??? ??? ???


Название: Re: event'ы в Qwidget
Отправлено: Old от Ноябрь 27, 2016, 19:43
После изменения кисти нужно перерисовать виджет, вызовите update()


Название: Re: event'ы в Qwidget
Отправлено: Hrundel от Ноябрь 27, 2016, 21:59
Спасибо! Забыл уже ей Богу. Давно в руки шашек не брал!  ;D ;D ;D