基于折线图对QChartView了解

2023-10-22 17:37
文章标签 了解 折线图 qchartview

本文主要是介绍基于折线图对QChartView了解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 目的
    • QChart
    • QGraphicsWidget
    • QChartView
    • Qt绘制图表
    • 注意事项
    • 扩展

目的

我们知道Qt QChart 是可以绘制各种各样图(polar , 条状图, 折线图, 散点图等等). 但是还要需要我们对于常用qchart , qcharview, 以及chart表格中sereis对象进行整理。

QChart

首先我们要了解下, QChart是一个可以在QGraphicsScene中显示的QGraphicsWidget。它管理不同类型系列和其他图表相关对象(如图表系列、图例和轴)的图形表示。为了简单地在布局中显示图表,可以使用方便类QChartView来代替QChart。此外,通过使用QPolarChart类,可以将直线、样条曲线、面积和散点序列显示为极坐标图。 它继承自QGraphicsWidget。

QGraphicsWidget

QGraphicsWidget是一个扩展的基本项,它在QGraphicsItem之上提供了额外的功能。它在许多方面与QWidget相似:

  • 具有已定义的几何图形
  • 提供调色板、字体和样式
  • 支持带有布局设置
  • 使用grabShortcut()和insertAction()支持快捷方式和操作

与QGraphicsItem不同,QGraphicsWidget不是一个抽象类;您可以创建QGraphicsWidget的实例,而无需对其进行子类化。这种方法对于仅用于将子窗口小部件组织到布局中的窗口小部件非常有用。
如果您需要高级的输入焦点处理,例如选项卡焦点和激活或布局,QGraphicsWidget可以用作您自己的自定义项的基础项。
由于QGraphicsWidget类似于QWidget,并且具有类似的API,因此更容易将小部件从QWidget移植到QGraphicsWidget,而不是QGraphicsItem。

注意:基于QWidget的小部件可以使用QGraphicsProxyWidget直接嵌入到QGraphicsScene中。

QWidget 与 QGraphicsWidge的显著差异是:

QWidgetQGraphicsWidge
QWidget uses integer geometry (QPoint, QRect).Coordinates and geometry are defined with qreals (doubles or floats, depending on the platform).
QWidget is hidden by default until you call show().The widget is already visible by default; you do not have to call show() to display the widget
All widget attributes are supported.A subset of widget attributes are supported.
A top-level widget’s style defaults to QApplication::styleA top-level item’s style defaults to QGraphicsScene::style
Standard drag and drop frameworkGraphics View provides a custom drag and drop framework, different from QWidget.
Full modality supportWidget items do not support modality.

QGraphicsWidget支持Qt的小部件属性的子集(Qt::WidgetAttribute),如下表所示。此表中未列出的任何属性都不受支持,或者未使用。

Widget AttributeUsage
Qt::WA_SetLayoutDirectionSet by setLayoutDirection(), cleared by unsetLayoutDirection(). You can test this attribute to check if the widget has been explicitly assigned a layoutDirection. If the attribute is not set, the layoutDirection() is inherited.
Qt::WA_RightToLeftToggled by setLayoutDirection(). Inherited from the parent/scene. If set, the widget’s layout will order horizontally arranged widgets from right to left.
Qt::WA_SetStyleSet and cleared by setStyle(). If this attribute is set, the widget has been explicitly assigned a style. If it is unset, the widget will use the scene’s or the application’s style.
Qt::WA_ResizedSet by setGeometry() and resize().
Qt::WA_SetPaletteSet by setPalette().
Qt::WA_SetFontSet by setFont().
Qt::WA_WindowPropagationEnables propagation to window widgets.

尽管QGraphicsWidget继承了QObject和QGraphicsItem,但您应该使用QGraphicsIItem而不是QObject提供的函数来管理父项和子项之间的关系。这些功能控制物品的堆叠顺序及其所有权。

注意:对于为QGraphicsWidgets对象,QObject::parent()应该始终返回nullptr,但此策略没有严格定义。

QChartView

QChartView 可以显示图表的一个独立的小部件。图表视图不需要QGraphicsScene对象即可工作, 但要在现有的QGraphicsScene中显示图表,应使用QChart或QPolarChart类。
它继承自QGraphicsView, 我们之前了解过QGraphicsView 是可以在其QGraphicsScene中支持添加百万条QGraphicsItem.

Qt绘制图表

 QChart *chart = new QChart();chart->setTheme(QChart::ChartThemeQt);chart->setTitle(QString::fromLocal8Bit("显示坐标点"));chart->setMargins(QMargins(10,

这篇关于基于折线图对QChartView了解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/262727

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

PHP: 深入了解一致性哈希

前言 随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运

Weex入门教程之1,了解Weex

【资料合集】Weex Conf回顾集锦:讲义PDF+活动视频! PDF分享:链接:http://pan.baidu.com/s/1hr8RniG 密码:fa3j 官方教程:https://weex-project.io/cn/v-0.10/guide/index.html 用意 主要是介绍Weex,并未涉及开发方面,好让我们开始开发之前充分地了解Weex到底是个什么。 以下描述主要摘取于

Java了解相对较多!

我是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。   委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。   下

使用WebP解决网站加载速度问题,这些细节你需要了解

说到网页的图片格式,大家最常想到的可能是JPEG、PNG,毕竟这些老牌格式陪伴我们这么多年。然而,近几年,有一个格式悄悄崭露头角,那就是WebP。很多人可能听说过,但到底它好在哪?你的网站或者项目是不是也应该用WebP呢?别着急,今天咱们就来好好聊聊WebP这个图片格式的前世今生,以及它值不值得你花时间去用。 为什么会有WebP? 你有没有遇到过这样的情况?网页加载特别慢,尤其是那

初步了解VTK装配体

VTK还不太了解,根据资料, vtk.vtkAssembly 是 VTK库中的一个重要类,允许通过将多个vtkActor对象组合在一起来创建复杂的3D模型。 import vtkimport mathfrom vtk.util.colors import *filenames = ["cylinder.stl","sphere.stl","torus.stl"]dt = 1.0renW

HighCharts 折线图的实现

Java和HighCharts结合,实现折线图; 代码下载:Java和Highcharts实现折线图

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

了解elementUI的底层源码, 进行二次开发

Element UI 是一个基于 Vue.js 的桌面端组件库,广泛用于构建美观、交互友好的用户界面。要深入理解 Element UI 的底层源码并进行二次开发,你需要掌握以下几个关键点: Vue.js 原理 Element UI 是基于 Vue.js 构建的,因此首先需要熟悉 Vue.js 的核心概念和机制,包括: ● 组件系统:Vue.js 的组件化思想,如何定义组件、使用组件、传递属性和事