giusepped
16th April 2009, 10:40
How is it possible that I get a similar bad drawing?
The code is quite standard:
SurfaceWidget::SurfaceWidget(QWidget* parent): QWidget(parent)
{
azimuth = 0;
setBackgroundRole(QPalette::Base);
setAutoFillBackground(true);
}
void SurfaceWidget::paintEvent(QPaintEvent* /*event*/)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true) ;
int side = qMin(width(),height());
painter.setViewport(0, 0,side,side);
qDebug()<<"Surface"<<width()<<height();
painter.setWindow(-50,-50,50,50);
draw(&painter);
}
void SurfaceWidget::draw(QPainter * painter)
{
painter->translate(+0.5, +0.5);
painter->setPen(QPen(Qt::black,1 ,Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin));
painter->setBrush(QBrush(Qt::blue,Qt::BDiagPattern));
painter->drawRect(-50,-50,40,20);
painter->drawRect(QRect(0, 0, width() - 1, height() - 1));
}
QSize SurfaceWidget::minimumSizeHint() const
{
return QSize(100, 100);
}
The code is quite standard:
SurfaceWidget::SurfaceWidget(QWidget* parent): QWidget(parent)
{
azimuth = 0;
setBackgroundRole(QPalette::Base);
setAutoFillBackground(true);
}
void SurfaceWidget::paintEvent(QPaintEvent* /*event*/)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true) ;
int side = qMin(width(),height());
painter.setViewport(0, 0,side,side);
qDebug()<<"Surface"<<width()<<height();
painter.setWindow(-50,-50,50,50);
draw(&painter);
}
void SurfaceWidget::draw(QPainter * painter)
{
painter->translate(+0.5, +0.5);
painter->setPen(QPen(Qt::black,1 ,Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin));
painter->setBrush(QBrush(Qt::blue,Qt::BDiagPattern));
painter->drawRect(-50,-50,40,20);
painter->drawRect(QRect(0, 0, width() - 1, height() - 1));
}
QSize SurfaceWidget::minimumSizeHint() const
{
return QSize(100, 100);
}