QT开发中文网

svgWidget.render(&pixmap)出错

非常抱歉,我犯了错误。在代码中,svgWidget.render(&pixmap)这行代码是有问题的。

正确的写法应该是:

svgWidget.render(&pixmap, QPoint(), QRegion(), QWidget::DrawChildren);

这里我们使用了QSvgWidget类的render()方法,将SVG文件渲染到一个新创建并填充透明颜色的QPixmap对象中。需要注意的是,在调用render()方法时,第二个参数指定渲染偏移量(通常为(0, 0)),第三个参数可以指定绘制区域(此处为空区域)以及最后一个参数QWidget::DrawChildren表示同时渲染子组件。

完整的示例代码如下:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 加载 SVG 文件
    QSvgWidget svgWidget;
    svgWidget.load("your_svg_file.svg");

    // 渲染 SVG 到 QPixmap 中
    int width = svgWidget.width();
    int height = svgWidget.height();
    QPixmap pixmap(width, height);
    pixmap.fill(Qt::transparent);
    svgWidget.render(&pixmap, QPoint(), QRegion(), QWidget::DrawChildren);

    // 绘制图像
    QPainter painter;
    painter.begin(&pixmap);
    
    painter.drawText(QPointF(10.0, 20.0), "Hello World!");
    
    painter.end();

    // 显示图像
    QLabel label;
    label.setPixmap(pixmap);
    label.show();

    return a.exec();
}

希望这次回答能够解决您的问题。如果还有其他问题,请随时提出。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1665

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?