2

我正在发现 Qt,但遇到了一个非常简单的问题:我尝试在小部件上绘制图像。

我在绘制一些馅饼或矩形时没有问题,但我看不到图像......

这是may代码的一部分:

void GraphicWidget::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
painter.setPen(Qt::red);
painter.setBrush(Qt::blue);
painter.translate(0, rect().height());

QPixmap pixmap;
if ( pixmap.load("Lena.png") )
{
     std::cout << "succes" << std::endl;
     painter.drawPixmap( QPoint(100,100), pixmap );
}
else
     std::cout << "fail" << std::endl;

    painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16);//works
    painter.drawRect(QRect(30, -5, 20, 10));            //works
}
4

1 回答 1

2

您已经翻译了 QPainter 的坐标系。所以你x应该在 [0, width] 区间,你y应该在 [-height, 0] 区间。QPoint(100,100)超出了您的小部件的边界。

于 2013-06-04T20:54:03.613 回答