请问一下Qpainter设置viewport和window的问题。我设置了viewport和window应该是线性坐标变换的。和图2一样。
但是我加了一句painter.translate(0,100);后就不对了见图1.
只有将side设为100使得viewport和window大小一样才行。
请教为什么会这样?难道设置窗口和坐标移动不能一起用么?
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
int x = 50;
int y = 50;
int side = 150;
//设置视口
QRect viewrect(x,y,side,side);
// painter.translate(0,100); //?????
painter.drawRect(viewrect);
painter.setViewport(viewrect);
painter.setWindow(0, 0, 100, 100);
painter.setBrush(Qt::green);
painter.drawRect(0, 0, 20, 20);
painter.drawLine(0,0,painter.window().width(),painter.window().height());
}