代码拉取完成,页面将自动刷新
/***************************************************************************
** **
** QCustomPlot, an easy to use, modern plotting widget for Qt **
** Copyright (C) 2011-2018 Emanuel Eichhammer **
** **
** This program is free software: you can redistribute it and/or modify **
** it under the terms of the GNU General Public License as published by **
** the Free Software Foundation, either version 3 of the License, or **
** (at your option) any later version. **
** **
** This program is distributed in the hope that it will be useful, **
** but WITHOUT ANY WARRANTY; without even the implied warranty of **
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
** GNU General Public License for more details. **
** **
** You should have received a copy of the GNU General Public License **
** along with this program. If not, see http://www.gnu.org/licenses/. **
** **
****************************************************************************
** Author: Emanuel Eichhammer **
** Website/Contact: http://www.qcustomplot.com/ **
** Date: 25.06.18 **
** Version: 2.0.1 **
****************************************************************************/
#include "qcpdocumentobject.h"
QCPDocumentObject::QCPDocumentObject(QObject *parent) :
QObject(parent)
{
}
QSizeF QCPDocumentObject::intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format)
{
Q_UNUSED(doc)
Q_UNUSED(posInDocument)
QPicture pic = qvariant_cast<QPicture>(format.property(PicturePropertyId));
if (pic.isNull())
{
qDebug() << Q_FUNC_INFO << "Plot object is empty";
return QSizeF(10, 10);
} else
return QSizeF(pic.boundingRect().size());
}
void QCPDocumentObject::drawObject(QPainter *painter, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format)
{
Q_UNUSED(doc)
Q_UNUSED(posInDocument)
QPicture pic = qvariant_cast<QPicture>(format.property(PicturePropertyId));
if (pic.isNull())
return;
QSize finalSize = pic.boundingRect().size();
finalSize.scale(rect.size().toSize(), Qt::KeepAspectRatio);
double scaleFactor = finalSize.width()/(double)pic.boundingRect().size().width();
painter->save();
painter->scale(scaleFactor, scaleFactor);
painter->setClipRect(rect);
painter->drawPicture(rect.topLeft(), pic);
painter->restore();
}
QTextCharFormat QCPDocumentObject::generatePlotFormat(QCustomPlot *plot, int width, int height)
{
QPicture picture;
QCPPainter qcpPainter;
qcpPainter.begin(&picture);
plot->toPainter(&qcpPainter, width, height);
qcpPainter.end();
QTextCharFormat result;
result.setObjectType(QCPDocumentObject::PlotTextFormat);
result.setProperty(QCPDocumentObject::PicturePropertyId, QVariant::fromValue(picture));
return result;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。