Здравствуйте, гость ( Вход | Регистрация )
ViGOur | Дата 16.9.2008, 10:33 |
painEvent Нужно быть внимательней не painEvent, а paintEvent! |
|
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() в экземпляре данного класса то отображается пустое окно, виджет не рисуется, как сделать так, чтобы происходила его отрисовка? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 18:22 |