gpt4 book ai didi

c++ - 如何使用 painter 类绘制 svg 图形

转载 作者:行者123 更新时间:2023-11-28 04:05:21 26 4
gpt4 key购买 nike

我正在努力学习如何使用绘图功能。到目前为止,我已经能够使用 QPainter 类在 QWidget 上绘制一些圆圈,如下所示:

我在 MainWindow.h 中添加了:

 virtual void paintEvents(QPaintEvent *event); 

然后在 MainWindow.cpp 中添加:

void MainWindow::paintEvents(QPaintEvent *event) {
QPainter painter(this);
painter.drawEllipse( 305, 55, 475, 475 );
painter.drawEllipse( 320, 70, 445, 445 );
painter.end();
}

这让我画了一些像素圆圈,但我需要 svg。那么如何使用 QPainter 类来绘制 svg 圆圈呢?

最佳答案

您可以使用 Qt SVG module .如果您正在使用 qmake,请将 QT += svg 添加到您的 .pro 文件中,然后您将能够使用 SVG 类。然后,您可以利用 QSvgRenderer使用您的 QPainter 实例绘制 svg 文档,例如:

#include <QSvgRenderer>
...
void MainWindow::paintEvents(QPaintEvent *event) {
QPainter painter(this);
QSvgRenderer svgr("/path/to/img.svg");
svgr.render(&painter);
painter.end();
}

根据文档,render 方法还有另外两个重载,可以让您控制渲染的位置和内容。您可能还想从具有适当构造函数或加载方法的 QByteArray 或 XML 流加载 svg 内容。

关于c++ - 如何使用 painter 类绘制 svg 图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com