資源簡介
對原來的功能進行增加,加強版Qcharts曲線支持散點圖,歡迎朋友提出建議
代碼片段和文件信息
/****************************************************************************
**
**?Copyright?(C)?2016?The?Qt?Company?Ltd.
**?Contact:?https://www.qt.io/licensing/
**
**?This?file?is?part?of?the?Qt?Charts?module?of?the?Qt?Toolkit.
**
**?$QT_BEGIN_LICENSE:GPL$
**?Commercial?License?Usage
**?Licensees?holding?valid?commercial?Qt?licenses?may?use?this?file?in
**?accordance?with?the?commercial?license?agreement?provided?with?the
**?Software?or?alternatively?in?accordance?with?the?terms?contained?in
**?a?written?agreement?between?you?and?The?Qt?Company.?For?licensing?terms
**?and?conditions?see?https://www.qt.io/terms-conditions.?For?further
**?information?use?the?contact?form?at?https://www.qt.io/contact-us.
**
**?GNU?General?Public?License?Usage
**?Alternatively?this?file?may?be?used?under?the?terms?of?the?GNU
**?General?Public?License?version?3?or?(at?your?option)?any?later?version
**?approved?by?the?KDE?Free?Qt?Foundation.?The?licenses?are?as?published?by
**?the?Free?Software?Foundation?and?appearing?in?the?file?LICENSE.GPL3
**?included?in?the?packaging?of?this?file.?Please?review?the?following
**?information?to?ensure?the?GNU?General?Public?License?requirements?will
**?be?met:?https://www.gnu.org/licenses/gpl-3.0.html.
**
**?$QT_END_LICENSE$
**
****************************************************************************/
#include?“callout.h“
#include?
#include?
#include?
#include?
#include?
Callout::Callout(QChart?*chart):
????QGraphicsItem(chart)
????m_chart(chart)
{
}
QRectF?Callout::boundingRect()?const
{
????QPointF?anchor?=?mapFromParent(m_chart->mapToPosition(m_anchor));
????QRectF?rect;
????rect.setLeft(qMin(m_rect.left()?anchor.x()));
????rect.setRight(qMax(m_rect.right()?anchor.x()));
????rect.setTop(qMin(m_rect.top()?anchor.y()));
????rect.setBottom(qMax(m_rect.bottom()?anchor.y()));
????return?rect;
}
void?Callout::paint(QPainter?*painter?const?QstyleOptionGraphicsItem?*option?QWidget?*widget)
{
????Q_UNUSED(option)
????Q_UNUSED(widget)
????QPainterPath?path;
????path.addRoundedRect(m_rect?5?5);
????QPointF?anchor?=?mapFromParent(m_chart->mapToPosition(m_anchor));
????if?(!m_rect.contains(anchor))?{
????????QPointF?point1?point2;
????????//?establish?the?position?of?the?anchor?point?in?relation?to?m_rect
????????bool?above?=?anchor.y()?<=?m_rect.top();
????????bool?aboveCenter?=?anchor.y()?>?m_rect.top()?&&?anchor.y()?<=?m_rect.center().y();
????????bool?belowCenter?=?anchor.y()?>?m_rect.center().y()?&&?anchor.y()?<=?m_rect.bottom();
????????bool?below?=?anchor.y()?>?m_rect.bottom();
????????bool?onLeft?=?anchor.x()?<=?m_rect.left();
????????bool?leftOfCenter?=?anchor.x()?>?m_rect.left()?&&?anchor.x()?<=?m_rect.center().x();
????????bool?rightOfCenter?=?anchor.x()?>?m_rect.center().x()?&&?anchor.x()?<=?m_rect.right();
????????bool?onRight
評論
共有 條評論