Qwt源码解读之QwtInterval 类

QWT的使用 QT下开源图表库比较少,用的比较多的就是QWT, QWT提供的API不够简洁,绘图过程也比较复杂. 这一点不如Java的JFreeChart方便. 一. 编译安装      QWT最新版本是6.1, QWT5与QWT6一点也不兼容,windows下编译非常简单:      cd $(QWT_ROOT)      qmake       nmake 阅读详情

   QwtInterval 类表征一个区间,这个区间由两个double类型的上限值max和下限值min所表示。它可以表示[min, max],[min, max),(min, max]和(min, max) 等4种情况。

代码分析:

class QWT_EXPORT QwtInterval
{
public:
    /*!
      Flag indicating if a border is included or excluded 
      \sa setBorderFlags(), borderFlags()
    */
    enum BorderFlag
    {
        //! Min/Max values are inside the interval
        IncludeBorders = 0x00,
        //! Min value is not included in the interval
        ExcludeMinimum = 0x01,
        //! Max value is not included in the interval
        ExcludeMaximum = 0x02,
        //! Min/Max values are not included in the interval
        ExcludeBorders = ExcludeMinimum | ExcludeMaximum
    };
    //! Border flags
    typedef QFlags<BorderFlag> BorderFlags; // 是否包含左右边界的标志变量

    QwtInterval();
    QwtInterval( double minValue, double maxValue,
        BorderFlags = IncludeBorders );

    void setInterval( double minValue, double maxValue,
        BorderFlags = IncludeBorders );

    QwtInterval normalized() const; 
    QwtInterval inverted() const; //  反转一个区间
    QwtInterval limited( double minValue, double maxValue ) const; // 同 setMinValue(minValue) & setMaxValue(maxValue)

    bool operator==( const QwtInterval & ) const;
    bool operator!=( const QwtInterval & ) const;

    void setBorderFlags( BorderFlags );
    BorderFlags borderFlags() const;

    double minValue() const;
    double maxValue() const;
    double width() const; // 返回区间的宽度
    void setMinValue( double );
    void setMaxValue( double );
    bool contains( double value ) const;
    bool intersects( const QwtInterval & ) const; // 测试两个区间是否有交集!
    QwtInterval intersect( const QwtInterval & ) const; // 取两个区间的交集
    QwtInterval unite( const QwtInterval & ) const; // 取两个区间的并集
    QwtInterval operator|( const QwtInterval & ) const;
    QwtInterval operator&( const QwtInterval & ) const;
    QwtInterval &operator|=( const QwtInterval & );
    QwtInterval &operator&=( const QwtInterval & );

    QwtInterval extend( double value ) const; //  扩大一个区间
    QwtInterval operator|( double ) const;
    QwtInterval &operator|=( double );

    bool isValid() const;
    bool isNull() const;
    void invalidate(); // 使无效(即初始化至初始状态),一个好的命名示例,如果是我们写代码,很可能写成initial(); 
    QwtInterval symmetrize( double value ) const; // 对称化,使value成为该区间的中心点
private:
    double d_minValue;
    double d_maxValue;
    BorderFlags d_borderFlags;
};







qwt使用例子 qwt绘制柱状图的一个经典例子。此文档可以帮助初学者深入了解qwt的使用方法。 立即下载

相关推荐

UNITE真菌数据库使用避坑指南:从下载到注释的完整流程

本文提供了UNITE真菌数据库从下载到注释的完整实战指南。针对真菌ITS序列分析,重点解析了数据库版本选择、格式转换的常见陷阱,并详细介绍了如何训练优化的sklearn分类器以提升物种注释的精度和可靠性,帮助用户构建高效稳定的本地工作流。

weixin_29240343的博客 199

QWT 的小项目总结 ver 1.0 SP2

今天终于完成了QWT的基础应用功能,有些小高兴,有些小失落。 碰到的问题挺多的,但是却找不到一个有经验的,能不讲的和浮云一样的先辈指导。我知道我的代码风格依旧很烂,但我却不知道有什么办法可以改。也许是自己看别人源代码实在看得太少的缘故吧。我是怎么写 怎么感觉难看。好悲哀。 废话不想太多,说下自己的使用总结。 一般来说,对于一个图表。 可能的话,应该有一个坐标轴,QWT中,

Gemini 706

GPMC开发笔记(TI开发者推荐笔记)

因为gpmc(General-Purpose Memory Controller)是TI特有的驱动,gpmc的资料比较少,本人开发gpmc驱动算是摸了很多石头过河的。所以想通过这遍文章可以给也做GPMC驱动开发的后来者有一点参考价值。文章如有瑕疵也请各位批评改正。 1.GPMC介绍 gpmc主要用于与nandflash,norflash,fpga进行通信。在这里主要介绍gpmc16位数据和地址线不复用nor模式下的通信。 注意:在这种模式下gpmc_a[0]引脚是没法使用的 1.1GPMC信号线

weixin_44316996的博客 7499

Qwt开发笔记(二):Qwt基础框架介绍、折线图介绍、折线图Demo以及代码详解

QWT开发笔记系列整理集合,本文章主要讲解qwt折线图,借助折线图展现一个基础流程框架。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 2万+

Cisco Firepower FMCv修改管理Ip方法

Cisco Firepower FMCv修改管理Ip方法

funnycoffee123的博客 1091

【UE5】RTS游戏的框选功能+行军线效果实现

步骤: 一、项目准备; 二、框选NPC并移动到指定地点; 三、框选效果; 四、行军线效果

ChaoChao66666的博客 2378

Qwt源码解读之开篇记

最近突然有一种想研究Qwt源码的想法,一来通过解读源码深入学习Qwt库,掌握如何扩展一个库;二来通过对开源库源码的研究,向大师学习一些编程习惯和设计技巧。        Qwt全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目,可用来绘制各种统计图。目前版本为Qwt-6.0.1。http://qwt.sourceforge.ne

e5Max的专栏 4577

微信小程序|基于小程序+云开发制作一个菜谱小程序

今天吃什么?这是一个让强迫症左右为难的问题,跟随此文基于小程序+云开发制作一个菜谱小程序,根据现有食材一键生成菜谱,省心又省力。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

Qwt源码解读之QwtColorMap颜色类

QwtColorMap是一个抽象基类,用于将值映射到颜色。Qwt实现了其两个派生子类QwtLinearColorMap和QwtAlphaColorMap。继承关系如下: 我们首先看看QwtColorMap的代码: class QWT_EXPORT QwtColorMap { public: /*! Format for color mapping

e5Max的专栏 4398

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,

KJ.JK 1071

Vue3 - 手机移动端H5网页强力解决弹起软键盘后页面被挤压变形或页面整体上移问题,点击input输入框键盘弹出底部被上推往上顶遮挡及各种问题(兼容安卓苹果ios手机,微信公众号网页微信内置浏览器)

vue3,h5网页,input输入框组件,vue3 h5软键盘弹出,vue3输入框,键盘弹起时页面整体上移问题,uni,H5页面,解决软键盘弹起页面被挤压、被往顶的问题,解决vue3输入框,键盘弹起时页面整体上移问题,vue3调用手机系统软键盘,页面窗口被顶起,布局定位失效,解决VUE3软键盘弹起导致页面fixed定位元素被顶上去,输入法软键盘弹起,窗口顶起,变形解决办法,Vue中input组件在IOS设备上弹出软键盘时页面整体上移问题的解决方案,以及input组件聚焦后弹出软键盘固定在,Vue3软键盘把界

🏆 前端领域优质创作者 1万+

QWT使用总结

废话不想太多,说下自己的使用总结。 一般来说,对于一个图表。 可能的话,应该有一个坐标轴,QWT中,是用QwtPlot这个类 来描述一个图的坐标系图(只表示坐标系的背景,没有描点)。坐标(刻度)的设置,是使用其他类(如类名带有Axis、Scale)来设置的,但是他们大多设置的是相应的样式细节,具体的数值依然是由Plot设置。比如,我想设置一个坐标系的横坐标范围,是使用Plot中的  setAxi

ykm0722的专栏 1万+

Python与网络爬虫案例:电影评论抓取

接下来,我们就可以通过分析该页面中的HTML代码,来确定需要抓取的内容。在这段代码中,我们首先对每个评论div元素进行for循环,然后通过find方法获取class为'title'、'text'、'rating-other-user-rating'的元素,并将结果分别赋值给title、content和rating变量。在这段代码中,我们首先定义了目标网站的URL和headers信息,然后通过requests.get方法向目标网站发送了一个GET请求,并将返回的响应赋值给了response变量。

吃不胖. 1263

Qwt源码解读之标尺相关类

Qwt中添加标尺是非常方便和漂亮的。除了有普通的直尺外,还有环形标尺。这里我们先学习一下直尺的相关类。直尺的相关类共有下面几个: 1、QwtScaleMap:标尺值映射类。       QwtScaleMap类用于提供标尺坐标系与绘制设备坐标系之间的映射关系。其主要的功能依托 QwtScaleTransformation 类来实现。 2、QwtScaleDiv:标尺刻度划分类。

e5Max的专栏 9331

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Qwt刻度尺系列解读---from Qwt-6.1.1

刻度尺系列解读---from Qwt-6.1.1

yangchuankai's blog 5897

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Qwt源码解读之QwtIntervalSample类和QwtSetSample类

QwtIntervalSample类表征一个区间样点,即(dx, y)或者 (x, dy) [A sample of the types (x1-x2, y) or (x, y1-y2)]。 代码分析: //! \brief A sample of the types(x1-x2,y)or(x,y1-y2) class QWT_EXPORT QwtIntervalSample { public

e5Max的专栏 2585

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

qwtplot 画频谱代码

QwtPlotSpectrogram* m_spectrogram; QwtMatrixRasterData* m_rawdata; QwtScaleWidget* m_rightAxis; LinearColorMapRGB* m_colorMap; class LinearColorMapRGB : public QwtLinearColorMap { public: Li...

foxgod的专栏 1902

Qt Qwt之坐标轴移动

最近接触到个pro需要做到这方面,于是找了相关材料,也跟好些人讨论,目前就最简单的使用方法,通过按钮触发去控制 X,Y轴的移动,比例自己定义 这个是X轴放大的 QwtInterval tempIntervalX = Gas_plot->axisScaleDiv(QwtPlot::xBottom).interval(); //标定是X,返回X轴的数据,interval是...

weixin_30553837的博客 770

C/C++ 连接两个字符串

一: C风格字符串连接 #include using namespace std; int main() {   const char *str = "hello ";   const char *str2 = "world";   const size_t len = strlen(str)+strlen(str2);   char *n_str = new

king16304的博客 5万+

Qwt源码解读之QwtPlotItem类(二)

Qwt框架提供了几种标准的图元实现。如网格(QwtPlotGrid类)、标签(QwtPlotMarker类)、标尺(QwtPlotScaleItem类)、显示SVG格式图形文件的图元(QwtPlotSvgItem类)、频谱图(QwtPlotSpectrogram类)、曲线(QwtPlotCurve类)、柱状图(QwtPlotHistogram类)、间隔区域(QwtPlotIntervalCurve

e5Max的专栏 1万+
上一篇: Qwt源码解读之QwtPointPolar类
下一篇: Qwt源码解读之QwtIntervalSample类和QwtSetSample类
e5Max
博客等级 码龄14年 145粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值