Автор: mas_nix 16.9.2008, 10:26
Создпется графическмй компонент, В качестве родительского комнонента был выбран QWidget.
painEvent() и draw() переопределены следующим образом:
CODE
void QGWidget::painEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true);
int side=qMin(width(),height());
painter.setViewport((width()-side)/2,(height()-side)/2,side,side);
painter.setWindow(0,0,50,50);
draw(&painter);
}
void QGWidget::draw(QPainter *painter)
{
QPen thickPen(palette().foreground(),1.5);
painter->setPen(thickPen);
QRadialGradient haloGradient(0,0,20,0,0);
haloGradient.setColorAt(0.0,Qt::lightGray);
haloGradient.setColorAt(0.8,Qt::darkGray);
haloGradient.setColorAt(0.9,Qt::white);
haloGradient.setColorAt(1.0,Qt::black);
painter->setBrush(haloGradient);
painter->drawRect(1,1,50,50);
painter->setPen(thickPen);
painter->drawText(0,25,"Label");
}
все компилируется , но если вызвать метод show() в экземпляре данного класса то отображается пустое окно, виджет не рисуется,
как сделать так, чтобы происходила его отрисовка?
Автор: ViGOur 16.9.2008, 10:33
Цитата(mas_nix @ 16.9.2008, 11:26)
painEvent
Нужно быть внимательней не painEvent, а paintEvent!