gpt4 book ai didi

c++ - QtChart - C++ - 保存未显示的图表

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:25 25 4
gpt4 key购买 nike

我正在尝试将图表保存到文件中,在此示例中为 QTextDocument :

QTextDocument doc("Frame rate test\n");
QTextCursor cursor(&doc);
cursor.movePosition(QTextCursor::End);

if (getTestFinishedStatus())
{
QPixmap pix = _pFrameRateChart->grab(); //_pFrameRateChart is QChartView
cursor.insertImage(pix.toImage());
}

QTextDocumentWriter docWriter;
docWriter.setFileName("framerate.odf");
docWriter.setFormat("ODF");
docWriter.write(&doc);

问题是如果我在 ui 中显示图表,结果会不一样。这是未显示时的结果:

enter image description here

显示结果如下:

enter image description here

显然,即使我没有将 ChartView 添加到小部件以在 ui 上显示它,我也希望获得第二个结果。我试过调整 QChartView 的大小,调整 QChart 的大小,将图表添加到临时小部件和 QVBoxLayout 然后保存它,在保存之前临时显示 QChartView 等等......但没有取得好的结果。

最佳答案

我使用以下代码在 Pixmap 上渲染 QGraphivsView,因为 QtCharts 是基于 QGraphivsView 的,所以我认为这也可以。

尝试渲染图像而不是试图抓取像素图。

void Printer::putProfileImage(QRect profilePlaceholder, QRect viewPort, QPainter *painter, QGraphivsView* profile)
{
int x = profilePlaceholder.x() - viewPort.x();
int y = profilePlaceholder.y() - viewPort.y();
QRect pos(x, y, profilePlaceholder.width(), profilePlaceholder.height());
profile->render(painter, pos);

}

关于c++ - QtChart - C++ - 保存未显示的图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43046875/

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