精华内容
下载资源
问答
  • QChartView

    2020-05-08 11:53:15
    QChartView(VS2013+Qt5.9.1) QChartView 使用 需要加宏, 否则编译不过 QT_CHARTS_USE_NAMESPACE

    QChartView(VS2013+Qt5.9.1)

    -------------------------------------------------------

    1. QChartView 使用 需要加宏, 否则无法使用
    	QT_CHARTS_USE_NAMESPACE
    
    1. 不同版本QtTools下,Qt5Chatrs.lib 库可能需要手动加载,QtTools图形界面不一定包含QtCharts选项,未包含会导致编译时出现未定义的外部符号或未定义的外部命令。

    -------------------------------------------------------

    另一篇跟Chart操作有关的:
    链接: QChart.

    展开全文
  • Qt QChartView class

    2019-10-10 10:11:10
    QChartView是一个可以显示图表的独立窗口部件。 头文件:#include <QChartView> 继承:QGraphicsView 公开类型: enum RubberBand { NoRubberBand, VerticalRubberBand, HorizontalRubberBand, ...

    QChartView是一个可以显示图表的独立窗口部件。

    头文件:#include <QChartView>

    继承:QGraphicsView

    公开类型:
    enum 
    RubberBand { NoRubberBand, VerticalRubberBand, HorizontalRubberBand, RectangleRubberBand }

    该枚举描述了可以应用于矩形缩放区域的不同类型的橡皮筋效果。

    常量 描述

    QChartView::NoRubberBand

    0x0

    未指定缩放区域,因此无法启用缩放。

    QChartView::VerticalRubberBand

    0x1

    橡皮筋水平锁定在图表的大小,可以垂直拉动以指定缩放区域。

    QChartView::HorizontalRubberBand

    0x2

    橡皮筋会垂直锁定到图表大小,并且可以水平拉动以指定缩放区域。

    QChartView::RectangleRubberBand

    0x3 橡皮筋固定在被点击的位置,可以垂直和水平拉动。

    RubberBands类型是QFlags <RubberBand>的typedef。 它存储RubberBand值的OR组合。

    公有函数:

    QChartView(QChart *chart, QWidget *parent = nullptr)

    QChartView(QWidget *parent = nullptr)
    virtual  ~QChartView()
    QChart  *chart() const
    QChartView::RubberBands  rubberBand() const
    void  setChart(QChart *chart)
    void  setRubberBand(const QChartView::RubberBands &rubberBand)
    重新实现保护功能:


    virtual void mouseMoveEvent(QMouseEvent *event) override
    virtual void mousePressEvent(QMouseEvent *event) override
    virtual void mouseReleaseEvent(QMouseEvent *event) override
    virtual void resizeEvent(QResizeEvent *event) override
    相关非会员:


    typedef QObjectList
    QList<T> qFindChildren(const QObject *obj, const QRegExp &regExp)
    T qobject_cast(QObject *object)
    T qobject_cast(const QObject *object)
    宏:


    QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
    QWIDGETSIZE_MAX
    Q_CLASSINFO(Name, Value)
    Q_DISABLE_COPY(Class)
    Q_DISABLE_COPY_MOVE(Class)
    Q_DISABLE_MOVE(Class)
    Q_EMIT
    Q_ENUM(...)
    Q_ENUM_NS(...)
    Q_FLAG(...)
    Q_FLAG_NS(...)
    Q_GADGET
    Q_INTERFACES(...)
    Q_INVOKABLE
    Q_NAMESPACE
    Q_OBJECT
    Q_PROPERTY(...)
    Q_REVISION
    Q_SET_OBJECT_NAME(Object)
    Q_SIGNAL
    Q_SIGNALS
    Q_SLOT
    Q_SLOTS
    详细描述:

    图表视图不需要QGraphicsScene对象即可工作。 要在现有QGraphicsScene中显示图表,应改用QChart或QPolarChart类。

    成员函数说明:

    QChartView::QChartView(QChart *chart, QWidget *parent = nullptr)

    Constructs a chart view object with the parent parent to display the chart chart. The ownership of the chart is passed to the chart view.

    使用父级构造一个图表视图对象以显示图表。 图表的所有权被传递到图表视图。

    QChartView::QChartView(QWidget *parent = nullptr)

    Constructs a chart view object with the parent parent.

    构造一个chartview实例使用父类

    [virtual] QChartView::~QChartView()

    Deletes the chart view object and the associated chart.

    删除一个chartview以及相关的图表

    QChart *QChartView::chart() const

    Returns the pointer to the associated chart.

    See also setChart().

    返回相关的图表指针

    [override virtual protected] void QChartView::mouseMoveEvent(QMouseEvent *event)

    Reimplements: QGraphicsView::mouseMoveEvent(QMouseEvent *event).

    If the rubber band rectangle is displayed in the press event specified by event, the event data is used to update the rubber band geometry. Otherwise, the default QGraphicsView::mouseMoveEvent() implementation is called.

    如果橡皮筋矩形显示在事件指定的新闻事件中,则事件数据将用于更新橡皮筋的几何形状。 否则,将调用默认的QGraphicsView :: mouseMoveEvent()实现。

    [override virtual protected] void QChartView::mousePressEvent(QMouseEvent *event)

    Reimplements: QGraphicsView::mousePressEvent(QMouseEvent *event).

    If the left mouse button is pressed and the rubber band is enabled, the event event is accepted and the rubber band is displayed on the screen. This enables the user to select the zoom area.

    If some other mouse button is pressed or the rubber band is disabled, the event is passed to QGraphicsView::mousePressEvent().

    如果按下鼠标左键并启用了橡皮筋,则接受事件事件,并且橡皮筋显示在屏幕上。 这使用户能够选择缩放区域。

    如果按下了其他鼠标按钮或禁用了橡皮筋,则事件将传递到QGraphicsView :: mousePressEvent()。

    [override virtual protected] void QChartView::mouseReleaseEvent(QMouseEvent *event)

    Reimplements: QGraphicsView::mouseReleaseEvent(QMouseEvent *event).

    If the left mouse button is released and the rubber band is enabled, the event event is accepted and the view is zoomed into the rectangle specified by the rubber band. If releasing the right mouse button triggered the event, the view is zoomed out.

    如果释放鼠标左键并启用橡皮筋,则将接受事件事件,并且视图将放大到橡皮筋指定的矩形。 如果释放鼠标右键触发了事件,则视图将缩小。

    [override virtual protected] void QChartView::resizeEvent(QResizeEvent *event)

    Reimplements: QGraphicsView::resizeEvent(QResizeEvent *event).

    Resizes and updates the chart area using the data specified by event.

    使用事件指定的数据调整和更新图表区域。

    QChartView::RubberBands QChartView::rubberBand() const

    Returns the rubber band flags that are currently being used by the chart view.

    See also setRubberBand().

    返回图表视图当前正在使用的橡皮筋标志。

    void QChartView::setChart(QChart *chart)

    Sets the current chart to chart. The ownership of the new chart is passed to the chart view and the ownership of the previous chart is released.

    To avoid memory leaks, the previous chart must be deleted.

    将当前图表设置为图表。 新图表的所有权将传递到图表视图,并释放前一个图表的所有权。

    为避免内存泄漏,必须删除以前的图表。

    See also chart().

    void QChartView::setRubberBand(const QChartView::RubberBands &rubberBand)

    Sets the rubber band flags to rubberBand. The selected flags determine the way zooming is performed.

    Note: Rubber band zooming is not supported for polar charts.

    将橡皮筋标志设置为rubberBand。 所选标志确定执行缩放的方式。

    注意:极坐标图不支持橡皮筋缩放。

    See also rubberBand().

    展开全文
  • QTCharts入门 使用QChartView做折线图

    万次阅读 多人点赞 2018-11-15 17:22:53
    QTCharts入门 使用QChartView做折线图 引言 ---------------------------------------------------------------------------------------------------------------------- 自从Qt发布以来,给广大跨平台界面研发...

    QTCharts入门 使用QChartView做折线图

    引言

    ----------------------------------------------------------------------------------------------------------------------

          自从Qt发布以来,给广大跨平台界面研发人员带来了无数的福利。但是Qt自己却一直没有提供自带的组件库,这就使得QWT、QCustomPlot等第三方库有了巨大的生存空间,为了降低开发成本,大家都涌向了这些第三方库。这种情况一直持续到QTCharts的发布之前。QTCharts是Qt自带的组件库,包含折线、曲线、饼图、棒图、散点图、雷达图等等各种常用的图表。只是要注意协议的约束:GPLV3。

    正文

    ----------------------------------------------------------------------------------------------------------------------

          我们今天来看用QChartView来做折线图。QChartView派生自QGraphicsView,但它可专门用来展示QChart图表。

          先给大家做一下概念热身。

    坐标轴-QAbstractAxis:

          图表中,一般都有X、Y坐标轴,复杂一些的还带有Z轴。对应到QT的图表也有X、Y轴对象。但是今天,我们先不展开介绍。如果我们不创建轴坐标对应的对象,可以使用Qt的默认轴对象。后面我们会介绍用法。

    系列-QAbstractSeries:

          不论是曲线、饼图、棒图还是其他图表,其中展示的内容本质都是数据。一条曲线是一组数据,一个饼图也对应一组数据。在QT Charts中,这些一组组的数据被称作系列。对应不同类型的图表Qt提供了不同的系列。系列除了负责存储、访问数据,应该还提供了数据的绘制方法,比如折线图和曲线图分别对应QLineSerie和QSPLineSerie。我们可以用不同的系列达到不同的展示目的。

    图例-Legend:

          像Excel,QT Charts中也提供了图例,并且还可以显示或者隐藏图例。

    图表-QChart

          QT提供了QChart类来封装前面所说的内容,比如坐标轴、系列、图例等。QChart承担了一个组织、管理的角色。QChart派生自QGraphicsObject,因此它实际上是一个图元item。我们可以从QChart获取到坐标轴对象、数据系列对象、图例等等,并且可以设置图表的主题、背景色等等样式信息。

    视图-QChartView:

          负责QChart的展示。QChart本身只负责图表内容的组织、管理。图表的展示由视图负责,这个视图就是QChartView。QChartView派生自QGraphicsView,只是它专门提供了几个面向QChart的接口。比如setChart(QChart*)等。

          好了概念热身完毕,下面进入主题:用QChartView绘制折线图。

          步骤如下:

          1, 准备工作

          2, 修改pro文件

          3, 提升widget控件为QChartView

          4, 修改界面头文件

          5,  构建图表、构建系列

          6,  将图表绑定到视图

          7, 创建窗体并运行。

          下面来分别看一下:

    1 准备工作

          需要在安装qt时带上了charts,否则后面工作无法开展。

          对于编译方式安装的Qt,需要注意在configure时不要跳过charts。

          对于安装包方式安装的Qt,需要注意在安装时,确保charts组件被选中。

    2 修改pro文件

          在pro中,使用如下语句包含charts库:

    1

    QT+= charts

     

     

    • 3 提升widget控件为QChartView

          在绘制ui窗体时,从designer的工具箱中选择一个“Widget”类型的控件,将objectName设置为"widget",然后在它上面单击鼠标右键,选择“提升为”。

          在弹出的界面中,填写"提升的类名称"为: QChartView,头文件名称会自动生成,我们不用关心。

          然后单击“添加”按钮即可。

          如果在提升界面的上半部分已经有我们需要的类"QChartView",那么只需要选中它,然后单击"提升"按钮即可。

    4 修改界面头文件

          在界面的头文件中,我们需要编写下面两行代码:

    1

    2

    3

    #include <QtCharts>

    QT_CHARTS_USE_NAMESPACE

    #include "ui_xxxxx.h"

          请注意,两行加粗的代码必须写在#include  "ui_xxxxx.h"的前面,因为"ui_xxxxx.h"头文件也需要用到这里的宏定义。

          这两句代码的作用是包含QChart所需的一批头文件,并声明QTChats的命名空间。

    5,  构建图表、构建系列

    1

    QChart* chart = new QChart();

          这行代码很简单,我们构建一个QChart对象。

    1

    2

    3

    4

    QLineSeries *series = new QLineSeries();

    for (quint32 i = 0; i < 100; i++) {

        series->append(i, sin(0.6f*i));

    }

          上面的代码构建了一个折线系列对象,并且对它进行初始化。方法是调用append()接口,传递的参数x、y对用的是一组坐标数据。就是折线上的一个点。

          然后,我们将系列添加到图表,并创建默认的坐标轴。

    1

    2

    chart->addSeries(series);      

    chart->createDefaultAxes();        // 基于已添加到图表的 series 来创建默认的坐标轴

    6,  将图表绑定到视图

    1

    ui.widget->setChart(chart);       

          widget是前面第3步中我们提升的控件对象。

    7 创建窗体并运行。

    1

    2

    3

    4

    5

    6

    7

    int main(int argc, char * argv[])

    {

        QApplication app(argc, argv);

        CDialog dlg(NULL);

        dlg.exec();

        return 0;

    }

          OK,编译运行一下试试吧。是不是很简单呢?

    结语

    ----------------------------------------------------------------------------------------------------------------------

          本节我们通过将"Widget"控件提升为QChartView的方法完成了折线图的绘制。我们只修改了系列数据,其他的参数都采用默认方式,因此本节比较简单。下一节我们将演示直接使用QGraphicsView来完成本节功能的开发。后面的视频章节我们会陆续为大家介绍主题、样式设置、互操作、心电图等内容,敬请关注。

          关于QTCharts您还想知道什么,欢迎留言。

    C++老鸟整理

    90万字实战经验

    ----------------------------------------------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------------------------------------------

    《Qt 5/PyQt 5实战指南》

    【此目录为书稿目录,正式出版的页码经排版后有出入】

    -----------------------------------------------------------------

    目录

    第1章 准备工作        7

    1.1        推荐的开发环境        7

    1.2        安装Visual Studio 2017(简称VS2017)        7

    1.3        安装Python        8

    1.4        安装LLVM        11

    1.5        安装Qt 5.11.1        11

    第2章 pro与pri        15

    2.1        案例1 通过一个简单的EXE来介绍pro的基本配置        15

    2.2        案例2 整理一下目录吧        22

    2.3        案例3 加点料-增加一张图片        31

    2.4        知识点 pro文件常用配置        34

    2.5        知识点 pri文件有啥用        39

    2.6        知识点 一劳永逸,引入pri体系        45

    2.7        案例4 还是不知道pri咋用?来练练手吧!        56

    2.8        配套练习        60

    第3章 多国语言国际化        63

    3.1        案例5 怎样实现国际化        63

    3.2        案例6 几种常见的国际化编程场景        68

    3.3        知识点 God!全是英文,我的翻译呢?        71

    3.4        配套练习        73

    第4章 打基础        74

    4.1        案例7 开发一个DLL(Dynamic Link Library动态链接库)        74

    4.2        案例8 使用命名空间        79

    4.3        案例9 QString的6个实用案例        83

    4.4        案例10 用qDebug()输出信息        90

    4.5        案例11 使用QVector处理数组        96

    4.6        案例12 使用QList处理链表        105

    4.7        案例13 使用QMap建立映射        110

    4.8        案例14 万能的QVariant        116

    4.9        案例15 使用QMessagebox弹出各种等级的提示信息        120

    4.10        案例16 使用QInputDialog获取多种类型的用户输入        123

    4.11        案例17 开发自己的公共类库        129

    4.12        案例18 普通文本文件读写        135

    4.13        案例19 XML格式的配置文件        142

    4.14        案例20 INI格式的配置文件        149

    4.15        案例21 把类对象序列化到二进制文件        153

    4.16        案例22 从二进制文件反序列化类对象        160

    4.17        案例23 类的XML格式序列化        166

    4.18        案例24 类的二进制格式序列化-向前兼容        174

    4.19        案例25 使用流方式读写XML        186

    4.20        案例26 使用单体模式实现全局配置        196

    4.21        案例27 读取GB13000编码的身份证信息        199

    4.22        配套练习        206

    第5章 对话框        211

    5.1        知识点 Qt设计师的使用        211

    5.2        知识点 在Designer中进行界面布局        221

    5.3        案例28 对话框-走起        226

    5.4        案例29 三种编程方式实现信号-槽开发        234

    5.5        案例30 自定义signal与信号转发        241

    5.6        案例31 disconnect的用途        243

    5.7        案例32 消息阻塞-防止额外触发槽函数        246

    5.8        案例33 信号-槽只能用在对话框里吗        250

    5.9        案例34 对象之间还能怎么传递消息        252

    5.10        案例35 编程实现控件嵌套布局        255

    5.11        案例36 样式        258

    5.12        案例37 使用QStackedLayout实现向导界面        266

    5.13        案例38 定时器1        272

    5.14        案例39 定时器2        277

    5.15        配套练习        282

    第6章 常用控件        287

    6.1        案例40 使用QLabel显示文本或图片        287

    6.2        案例41 使用行编辑器QLineEdit获取多种输入        290

    6.3        案例42 使用下拉列表框QComboBox获取用户输入        296

    6.4        案例43 使用列表框QListWidget展示数据列表        300

    6.5        案例44 使用滑动条QSlider控制进度        305

    6.6        配套练习        311

    第7章 用QPainter实现自定义绘制        313

    7.1        案例45 怎样进行自定义绘制        313

    7.2        案例46 萌新机器人        317

    7.3        案例47 机器人的新装        321

    7.4        配套练习        324

    第8章 模型视图代理        325

    8.1        知识点 Qt的MVC简介        325

    8.2        案例48 用QStandardItemModel构建树模型        329

    8.3        案例49 使用代理实现属性窗        336

    8.4        案例50 带子属性的属性窗        356

    8.5        配套练习        374

    第9章 开发SDI应用        375

    9.1        案例51 开发一个SDI应用        375

    9.2        案例52 使用自定义视图        376

    9.3        案例53 添加主菜单        378

    9.4        案例54 常规工具条        383

    9.5        案例55 在状态栏上显示鼠标坐标        385

    9.6        案例56 使用QSplashScreen为程序添加启动画面        388

    9.7        案例57 工具条反显        393

    9.8        案例58 打开文件对话框        394

    9.9        案例59 浮动窗里的列表框        397

    9.10        案例60 拖放        399

    9.11        案例61 使用树视图做个工具箱        406

    9.12        案例62 使用事项窗展示事项或日志        412

    9.13        案例63 剪切、复制、粘贴        420

    9.14        案例64 上下文菜单        428

    9.15        案例65 利用属性机制实现动画弹出菜单        431

    9.16        案例66 main()函数一般都写啥        439

    9.17        配套练习        442

    第10章 开发MDI应用        444

    10.1        案例67 MDI-采用同一类型的View        444

    10.2        案例68 MDI-采用不同类型的View        460

    10.3        配套练习        477

    第11章 重写Qt事件        478

    11.1        知识点 QWidget事件简介        478

    11.2        案例69 通过重写鼠标事件实现图元移动        479

    11.3        案例70 通过重写键盘事件实现图元移动        484

    11.4        知识点 无法切换到中文输入时该怎么办        486

    11.5        配套练习        487

    第12章 开发插件        488

    12.1        知识点 什么是插件,插件用来干啥        488

    12.2        案例71 怎样开发插件        490

    12.3        配套练习        498

    第13章 开发多线程应用        499

    13.1        案例72 多线程&互斥锁        499

    13.2        案例73 多线程应用中如何与主界面通信        507

    13.3        案例74 使用QtConcurrent处理并发-Map模式        511

    13.4        案例75 使用QtConcurrent处理并发-MapReduce        517

    13.5        配套练习        522

    第14章 开发网络应用        523

    14.1        案例76 基于Qt的TCP/IP编程        523

    14.2        案例77 TCP/IP多客户端编程        534

    14.3        配套练习        556

    第15章 PyQt 5基础        557

    15.1        知识点 PyQt 5简介        557

    15.2        知识点 搭建PyQt 5开发环境        561

    15.3        案例78 编写第一个PyQt5程序        565

    15.4        案例79 给应用加上图片        569

    15.5        案例80 信号槽初探-窗口A调用窗口B        575

    15.6        案例81 编写代码实现控件布局        577

    15.7        案例82 在窗体A中嵌入自定义控件B        586

    15.8        案例83 使用QLabel显示GIF动画        589

    15.9        案例84 使用行编辑器QLineEdit获取多种输入        591

    15.10        案例85 使用下拉列表框QComboBox获取用户输入        597

    15.11        案例86 使用列表框QListWidget展示并操作列表        602

    15.12        案例87 使用滑动条QSlider控制进度        606

    15.13        案例88 使用QMessagebox弹出提示信息        612

    15.14        案例89 使用QInputDialog获取用户输入        617

    15.15        案例90 使用QFileDialog获取用户选择的文件名        623

    15.16        案例91 把程序最小化到系统托盘        626

    15.17        配套练习        630

    第16章 PyQt 5进程内通信        632

    16.1        知识点 PyQt 5中的信号-槽        632

    16.2        案例92 使用自定义信号        635

    16.3        案例93 带参数的自定义信号        637

    16.4        案例94 信号比槽的参数少该咋办        642

    16.5        案例95 使用QTimer实现定时器        644

    16.6        案例96 使用timerEvent()实现定时器        647

    16.7        案例97 使用QStackedLayout实现向导界面        650

    16.8        配套练习        656

    第17章 PyQt 5实现自定义绘制        657

    17.1        案例98 怎样进行自定义绘制        657

    17.2        案例99 萌新机器人        661

    17.3        案例100 机器人的新装        666

    17.4        配套练习        669

    第18章 PyQt 5中的模型视图代理        670

    18.1        案例101 用QStandardItemModel构建树模型        670

    18.2        案例102 最简单的属性窗        675

    18.3        案例103 使用代理实现属性窗        677

    18.4        案例104 自定义属性窗        682

    18.5        案例105 带子属性的属性窗        693

    18.6        配套练习        705

    第19章 PyQt 5开发SDI应用        707

    19.1        案例106 开发一个SDI应用        707

    19.2        案例107 使用自定义视图        708

    19.3        案例108 添加主菜单        709

    19.4        案例109 常规工具条        715

    19.5        案例110 在状态栏上显示鼠标坐标        717

    19.6        案例111 使用QSplashScreen为程序添加启动画面        720

    19.7        案例112 工具条反显        723

    19.8        案例113 浮动窗里的列表框        725

    19.9        案例114 拖放        727

    19.10        案例115 使用树视图做个工具箱        735

    19.11        案例116 使用事项窗展示事项或日志        739

    19.12        案例117 剪切、复制、粘贴        747

    19.13        案例118 上下文菜单        754

    19.14        配套练习        757

    第20章 PyQt 5开发MDI应用        759

    20.1        案例119 MDI-采用同一类型的View        759

    20.2        案例120 MDI-采用不同类型的View        773

    20.3        配套练习        783

    第21章 PyQt 5事件        784

    21.1        案例121 通过重写鼠标事件实现图元移动        784

    21.2        案例122 通过重写键盘事件实现图元移动        789

    21.3        配套练习        790

    第22章 PyQt 5开发多线程应用        791

    22.1        案例123 多线程&互斥锁        791

    22.2        案例124 多线程应用中如何刷新主界面        796

    22.3        配套练习        799

    第23章 项目实战-C++版        801

    23.1        案例125 项目实战准备-访问SQLite数据库        801

    23.2        案例126 项目实战准备-使用QCustomPlot绘制曲线        807

    23.3        案例127 项目实战-敏捷看板        811

    第24章 项目实战-PyQt版        828

    24.1        案例128 项目实战准备-访问SQLite数据库        828

    24.2        案例129 项目实战准备-用Matplotlib绘制曲线        834

    24.3        案例130 项目实战-敏捷看板        837

    附录A        859

    A.1 PyQt 5常用类所在模块  859     

    --------------------------------------------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------------------------------------------

    更多内容,请关注微信公众号:软件特攻队(微信号:xingdianketang)

     

     

     

    展开全文
  • QT QChartView显示坐标值

    千次阅读 2020-04-27 17:20:39
    1. 重写QChartView类 .h文件 #ifndef QCHARTVIEW_T_H #define QCHARTVIEW_T_H #include <QObject> #include <QtCharts/QChartView> #include <QChartView> #include <QMouseEvent>...

    实现方法有两种:

    1. 重写QChartView类

    .h文件

    #ifndef QCHARTVIEW_T_H
    #define QCHARTVIEW_T_H
    
    #include <QObject>
    #include <QtCharts/QChartView>
    #include <QChartView>
    #include <QMouseEvent>
    
    QT_CHARTS_USE_NAMESPACE
    
    class QChartView_t : public QChartView
    {
        Q_OBJECT
    public:
        //explicit QChartView_t(QWidget *parent = Q_NULLPTR);
        explicit QChartView_t(QChart *chart, QWidget *parent = Q_NULLPTR);
    
        void mouseMoveEvent(QMouseEvent *e);
    signals:
    
    public slots:
    };
    
    #endif // QCHARTVIEW_T_H
    

    .cpp文件

    #include "qchartview_t.h"
    
    #include <QtCharts/QChartView>
    #include <QChartView>
    #include <QDebug>
    
    QT_CHARTS_USE_NAMESPACE
    
    QChartView_t::QChartView_t(QChart *chart, QWidget *parent)
    {
        this->setChart(chart);
    }
    
    void QChartView_t::mouseMoveEvent(QMouseEvent *e)
    {
    
        //打印鼠标位置处的点的坐标值
        qDebug()<< this->chart()->mapToValue(e->pos());//把鼠标坐标值转化为画出的图中的坐标
        //以防父类的实例接收不到mouseMoveEvent事件。
        QChartView::mouseMoveEvent(e);//调用父类的重写方法。本行程序不同于e->ignore(),ignor是把事件继续向父控件(一般其父控件就是ui界面)传递,而不是向父类传递
    
    }

    2. 连接鼠标信号

    .cpp文件

    QSplineSeries *series = new QSplineSeries();
        series->setName("spline");
    
        connect(series,&QSplineSeries::clicked,this,&ShowWidget::on_ClickSeries);
    
        for(int i=0;i<numOfStep;i++)
        {
            *series<<QPointF(currVol.RedVoltage, LXY.Value_Lv);
        }
    
        //series->setPointLabelsVisible();//显示输入点坐标
    
        QValueAxis * axisY = new QValueAxis();
        axisY->setRange(0,1200);
        axisY->setTickCount(10);
    
        chart = new QChart();
        chart->legend()->hide();
        chart->addSeries(series);
        //chart->setTitle("Simple spline chart example");
    
        chart->createDefaultAxes();
        chart->axisX()->setRange(voltageRange.iVoltageMin, voltageRange.iVoltageMax);
        chart->setAxisY(axisY,series);
    
        QChartView *chartView = new QChartView(chart);
        chartView->setRenderHint(QPainter::Antialiasing);
    
        QGridLayout *baseLayout = new QGridLayout();
        baseLayout->addWidget(chartView, 0, 0);
        ui->widget->setLayout(baseLayout);

     

    展开全文
  • Qt Charts 之 QChartView Class

    千次阅读 2017-11-14 11:28:45
    QChartView是一个独立的图标小部件。 QChartView是一个独立的可以显示图表的部件。它不需要分离的QGraphicsScene就可以工作。如果你想要在已经存在的QGraphicsScene中显示一个图表,你需要使用QChart(或者...
  • 文章目录[隐藏] QChartView 的轴系统中获取鼠标坐标关键词QChartView 的轴系统中获取鼠标坐标方法 QChartView 的轴系统中获取鼠标坐标关键词 mapToScene mapFromScene mapToValue QChartView 的轴系统中获取鼠标...
  • Qt QChart 和QChartView的使用

    千次阅读 2019-09-07 10:08:11
    1、QChart和QChartView相关关系:https://blog.csdn.net/baizy77/article/details/84107786 2、动态曲线实现原理及代码:https://blog.csdn.net/AngOn823/article/details/78260033
  • QChartView鼠标滚轮实现水平方向缩放 这里需要弄清楚两个概念,PlotArea和zoomRect。 plotArea是指整个绘图区域,即x轴和y轴所包括的区域,坐标系采用的是全局坐标系(相对qchartView)。 zoomRect是把整个曲线缩放...
  • 在数据表中勾选对应的数据,自动增加一条折线,去掉自动删除 ```python import sys ...from PyQt5.QtChart import QDateTimeAxis,QValueAxis,QSplineSeries,QChart,QChartView class TsetUI(QMainWind
  • QTCharts入门 使用QChartView做图表

    千次阅读 2020-05-16 11:00:03
    QTCharts入门 使用QChartView做图表 这个Demo更新数据使用的是官方中audio这个example的方式。 程序 运行环境 : Qt Creator 4.3.1 Based on Qt 5.7.1 (MSVC 2013, 64 bit) Audio.pro 这个文件中需要添加的是 QT += ...
  • qt qchartview如何关闭矩形框缩放功能

    千次阅读 2019-04-28 22:49:07
    ui->chart->setRubberBand(QChartView::NoRubberBand);
  • 1.使用QChartView作为背景板 2.使用QFrame画最高最低线 3.使用QPushButton画开盘结算线 单个点数据如下: 代码如下: std::vector <QFrame *> m_vMidline; //收集K线中线用于清除 std::vector <...
  • error: 'QChartView' does not name a type 这个需要在pro中加入 QT += charts 还是会有 后面需要加入头文件 #include <QtCharts> 这样编译就不会出问题了。 这样就解决了这个问题。 ...
  • 生成不同类型的图表,并分别添加到布局中。本次制作了光滑曲线和粗糙曲线两种不同类型的图标,并能改换界面风格。添加了实时动态显示折线图的功能。
  • setBackgroundBrush这种接口可以设置QChartView 背景色 首先,给QChart类去掉背景渲染: 换肤 QChart *chart = new QChart(); chart->setTheme(QChart::ChartThemeLight); 这里chart是你自检的chart 进入枚举一共...
  • 将widget提升为QChartView类,编译后报错C2227。 方法: 问题和这位一样: QT ui-widget 提升为 QChartView类时 编译报错 解决方法参考以下几篇文章: [1]QTCharts入门 使用QChartView做折线图 [2]解决VS + Qt 找不...
  • QSplineSeries QDateTimeAxis QChartView 图表

    千次阅读 2020-03-05 21:48:02
    QChartView *chartView = new QChartView(chart); chartView->setRenderHint(QPainter::Antialiasing); //抗锯齿渲染 chartView->setParent(this); chartView->resize(this->size()); chartView->show(); QTimer *...
  • QLineSeries QChart QChartView 图表

    千次阅读 2020-03-05 21:45:23
    // 设置显示时的动画效果 QChartView *chartView = new QChartView(chart); chartView->setRenderHint(QPainter::Antialiasing); //抗锯齿渲染 chartView->setParent(this); chartView->resize(this->size()); ...
  • QT QChartView 添加图表

    千次阅读 2020-04-26 11:01:08
    [4] QChartView *chartView = new QChartView(chart); chartView->setRenderHint(QPainter::Antialiasing); QGridLayout *baseLayout = new QGridLayout(); baseLayout->addWidget(chartView, 0, 0); ui->widget->...
  • QChartView绘制饼状图

    2018-12-28 15:00:00
    QChartView(); chartView -> setRenderHint(QPainter::Antialiasing); // chartView->chart()->setTitle("DonutChart Example"); chartView->chart()-> addSeries(series); chartView ->chart()->legend()-> ...
  • QChartView *chartView = new QChartView(chart); chartView->setRenderHint(QPainter::Antialiasing); MainWindow w; w.setCentralWidget(chartView); w.show(); 转载于:...
  • QChartView *chartView = new QChartView(chart); chartView->setRenderHint(QPainter::Antialiasing); MainWindow w; w.setCentralWidget(chartView); w.show();   转载于:...
  • 使用QChartView做折线图

    2021-03-03 14:53:24
    QChartView 派生自 QGraphicsView,只是它专门提供了几个面向 QChart 的接口,比如 setChart(QChart*)等。 工程代码 .pro文件中添加 QT += charts mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 884
精华内容 353
关键字:

qchartview