наследник QWidget |
Здравствуйте, гость ( Вход | Регистрация )
наследник QWidget |
mas_nix |
16.9.2008, 10:26
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 16.9.2008 Пользователь №: 293 Спасибо сказали: 0 раз(а) Репутация: 0 |
Создпется графическмй компонент, В качестве родительского комнонента был выбран 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
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Текстовая версия | Сейчас: 14.1.2025, 20:20 |