QWT类的一些使用方法

Qwt库的安装与使用 Qwt库包含Qt下的GUI组件和实用程序类,主要适用于具有技术背景的程序。 以在Qt5.12.10环境下安装Qwt-6.1.6为例。 阅读详情
<pre name="code" class="cpp">鼠标滚轮放大缩小:

    QwtPlotMagnifier *PM = new QwtPlotMagnifier( ui->qwtPlot->canvas() );

鼠标左键拖动波形:

    QwtPlotPanner *PQ= new QwtPlotPanner( ui->qwtPlot->canvas() );

鼠标左键选择区域放大:(右键还原)

    QwtPlotZoomer* zoomer = new QwtPlotZoomer( ui->qwtPlot->canvas() );
    zoomer->setRubberBandPen( QColor( Qt::black ) );
    zoomer->setTrackerPen( QColor( Qt::black ) );
    zoomer->setMousePattern(QwtEventPattern::MouseSelect2,Qt::RightButton, Qt::ControlModifier );
    zoomer->setMousePattern(QwtEventPattern::MouseSelect3,Qt::RightButton );

设置X轴下面标识:

    ui->qwtPlot->setAxisTitle(QwtPlot::xBottom, "x -->" );

设置X轴取值范围:

    ui->qwtPlot->setAxisScale(QwtPlot::xBottom, 0.0, 30.0);

设置Y轴左边标识(竖着显示):

    ui->qwtPlot->setAxisTitle(QwtPlot::yLeft, "y -->");

设置Y轴取值范围:

    ui->qwtPlot->setAxisScale(QwtPlot::yLeft, -1.0, 1.0);

创建一个sin()曲线:

    QwtPlotCurve *cSin = new QwtPlotCurve("y = sin(x)");
    cSin->setRenderHint(QwtPlotItem::RenderAntialiased);
    cSin->setLegendAttribute(QwtPlotCurve::LegendShowLine, true);
    cSin->setPen(QPen(Qt::blue));
     cSin->attach(ui->qwtPlot);
    cSin->setData(new FunctionData(::sin));

其中FunctionData为:
class FunctionData: public QwtSyntheticPointData { public: FunctionData(double(*y)(double)): QwtSyntheticPointData(100), d_y(y) { } virtual double y(double x) const { return d_y(x); } private: double(*d_y)(double); };

    class FunctionData: public QwtSyntheticPointData
    {
    public:
        FunctionData(double(*y)(double)):
            QwtSyntheticPointData(100),
            d_y(y)
        {
        }
        virtual double y(double x) const
        {
            return d_y(x);
        }
    private:
        double(*d_y)(double);
    };

创建波形标识:(Y=0) QwtPlotMarker *mY = new QwtPlotMarker(); mY->setLabel(QString::fromLatin1("y = 0")); mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop); mY->setLineStyle(QwtPlotMarker::HLine); mY->setYValue(0.0); mY->attach(ui->qwtPlot);

    QwtPlotMarker *mY = new QwtPlotMarker();
        mY->setLabel(QString::fromLatin1("y = 0"));
        mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop);
        mY->setLineStyle(QwtPlotMarker::HLine);
        mY->setYValue(0.0);
        mY->attach(ui->qwtPlot);

创建波形标识:(X=PI/2) QwtPlotMarker *mX = new QwtPlotMarker(); mX->setLabel(QString::fromLatin1("x = PI/2")); mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom); mX->setLabelOrientation(Qt::Vertical); mX->setLineStyle(QwtPlotMarker::VLine); mX->setLinePen(QPen(Qt::black, 1, Qt::DashDotDotLine)); mX->setXValue(M_PI/2); mX->attach(ui->qwtPlot);

    QwtPlotMarker *mX = new QwtPlotMarker();
        mX->setLabel(QString::fromLatin1("x = PI/2"));
        mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom);
        mX->setLabelOrientation(Qt::Vertical);
        mX->setLineStyle(QwtPlotMarker::VLine);
        mX->setLinePen(QPen(Qt::black, 1, Qt::DashDotDotLine));
        mX->setXValue(M_PI/2);
        mX->attach(ui->qwtPlot);

设置qwtPlot的画布:(圆角矩形) ui->qwtPlot->canvas()->setLineWidth( 1 ); ui->qwtPlot->canvas()->setFrameStyle( QFrame::Box | QFrame::Plain ); ui->qwtPlot->canvas()->setBorderRadius( 15 );

    ui->qwtPlot->canvas()->setLineWidth( 1 );
        ui->qwtPlot->canvas()->setFrameStyle( QFrame::Box | QFrame::Plain );
        ui->qwtPlot->canvas()->setBorderRadius( 15 );

设置qwtPlot的画布:(白色填充) QPalette canvasPalette( Qt::white ); canvasPalette.setColor( QPalette::Foreground, QColor( 133, 190, 232 ) ); ui->qwtPlot->canvas()->setPalette( canvasPalette );

    QPalette canvasPalette( Qt::white );
        canvasPalette.setColor( QPalette::Foreground, QColor( 133, 190, 232 ) );
        ui->qwtPlot->canvas()->setPalette( canvasPalette );

设置整个界面的颜色: QPalette pal = palette(); const QColor buttonColor = pal.color( QPalette::Button ); QLinearGradient gradient( 0, 0, 0, 1 ); gradient.setCoordinateMode( QGradient::StretchToDeviceMode ); gradient.setColorAt( 0.0, Qt::white ); gradient.setColorAt( 0.7, buttonColor ); gradient.setColorAt( 1.0, buttonColor ); pal.setBrush( QPalette::Window, gradient ); setPalette( pal );

    QPalette pal = palette();
        const QColor buttonColor = pal.color( QPalette::Button );
        QLinearGradient gradient( 0, 0, 0, 1 );
        gradient.setCoordinateMode( QGradient::StretchToDeviceMode );
        gradient.setColorAt( 0.0, Qt::white );
        gradient.setColorAt( 0.7, buttonColor );
        gradient.setColorAt( 1.0, buttonColor );
        pal.setBrush( QPalette::Window, gradient );
        setPalette( pal );




        
qwt实现码流柱状图多色柱体显示 qt,qwt实现柱状图多色柱体 阅读详情

相关推荐

QWT入门的例子(源码Qwtplot and QDialog)

QWT入门的例子(源码Qwtplot and QDialog)

QT之qwtpolar极坐标刻度旋转

 1.示例如图: 2.任务描述: (1)刻度逆时针旋转90°; (2)刻度以y轴反转。 3.代码如下: //逆时针旋转90度并反转刻度 const double interval = 90.0;//设置旋转度数 double origin = plot-&gt;azimuthOrigin()/M_PI * 180.0; origin = qRound(origin/interval...

u014296371的博客 3345

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6908

QT学习 之 QwtPlot(数学绘图)

QT对于统计图像、函数图像等的绘制是没有相关组件的帮助的,只有利用手工绘制图片。 QwtPlot是用来绘制二维图像的widget,继承自QFrame 和 QwtPlotDict。不过严格的说来,它只是一个视图窗口,真正的绘制设备是它的中心部件QwtPlotCanvas类。  在它的画板上可以无限制的显示绘画组件。绘画组件可以是曲线(QwtPlotCurve)、标记(QwtPlotMarke

king16304的博客 1622

SocraticLM: Exploring Socratic Personalized Teaching with Large Language Models

大型语言模型(LLM)被认为是推进智能教育的一项关键技术,因为它们展示了深入理解教学场景和为学生提供个性化指导的潜力。然而,当前个性化教学中基于LLM的应用主要遵循“问答”范式,学生被动地获得答案和解释。在本文中,我们提出了苏格拉底式教学模式(SocraticLM ),它实现了一种苏格拉底式的“发人深省”的教学范式,实现了真正的课堂教师的角色,让学生积极参与到真正掌握解决问题所需的思考过程中。

weixin_43961909的博客 2884

ubuntu安装FSL

1.下载fslinstaller.py 官网下载地址:https://fsl.fmrib.ox.ac.uk/fsldownloads_registration 或者去我的百度网盘取: 链接:https://pan.baidu.com/s/1d5eHm48oamFdYdKm84nifw 提取码:6ff9 2.将base环境改成python2.0版本 本来想在服务器安装,服务器没有sudo权限,网上很多教程都装不了,于是就自己安装虚拟机再装了一个ubuntu,然后安装了python2环境,再开始装fsl,fsl

qq_36421001的博客 4098

QWT--图形框选局部放大

源码之下,没有秘密,推荐阅读源码学习! 链接:https://pan.baidu.com/s/1zlXTTQhD92X8G6PjDwf_Ag 提取码:jmpq 一、分析 绘制好图形之后,如果有些我们关注的点不好分析,可能就需要局部放大,将我们关注的点所在区域进行局部放大。QWT库提供了QwtPlotZoomer类用于实现该操作,可以把它理解为一个栈,里面存放着我们框选的矩形,可以通过调整遍历栈的方向实现前进、后退操作。 二、效果展示 三、具体操作 plot_zoomer = new QwtPlot.

贝勒里恩的博客 2715

通过Scrapy爬虫抓取Deep Learning领域的论文数据

然而,大部分高质量的deep learning研究论文都是通过国际顶尖学术会议(如neurips、iclr、icml等)发表的,而这些论文的获取难度较大。在本文中,我们选择抓取arXiv的数据。arXiv是一个管理科学论文的网站,其中包括了许多领域的论文,也包括了Deep Learning领域的论文。同时,arXiv网站还提供了方便的API接口,使得我们的爬虫程序可以很方便地获取论文数据。通过结合其他的数据处理技术,我们可以对这些数据进行更深入的研究和分析,从而推动Deep Learning领域的发展。

Ob2024的博客 609

QWT--滚轮放大缩小和拖拽视窗

一、滚轮放大缩小 QWT中提供了QwtPlotMagnifier类,用于实现鼠标滚轮放大和缩小图形的效果,其实本质就是修改x轴和y轴的范围。 二、拖拽视窗 QWT中提供了QwtPlotPanner类,用于实现鼠标拖动画布的效果,其实本质就是修改x轴和y轴的范围。 附一 各种功能有时候可能会发生冲突,例如框选放大功能和拖拽视窗功能都需要鼠标点击移动事件。如果两个功能同时开启的话,效果就会很糟糕,所以可以给每个功能加一个开关,由用户来自己调节: //头文件 QwtPlotZoomer *plot_zo

贝勒里恩的博客 3499

金融科技数据源

数字金融开放研究平台

平平淡淡,戒急用忍,一生学闭嘴。 1758

1.4 《SST通用技术规范》整体框架与核心条款解读

本小节以**GB/T《电力电子变压器通用技术要求》**(固态变压器SST核心通用规范)为核心依据,结合电力电子变压器技术特性与工程应用边界,系统解析规范的整体章节框架、层级逻辑与强制性/推荐性核心条款,明确规范与传统工频变压器标准的差异,为SST拓扑设计、性能验证、出厂检验与工程落地提供标准化依据。全文以标准原文、期刊文献数据与试验规范为支撑,无主观推演与感性表述。

技术工作者 1692

Qt:QWT类的一些使用方法

QWT类的一些使用方法 QwtPlot 类似一个2D绘图的容器, 里面可以放其他的QwtPlotItem派生类对象, 比如本例子中使用的QwtPlotMarker等。(有点类似Qt里的graphicsview的感觉。) 这个类负责控制绘图数据的产生和传递, 并且绘制一个坐标轴。 QwtPlotMarker 标尺类, 用于绘制刻度线。 QwtPlotCurve 曲线类, 用于绘制各种曲线。

xxgxgx的专栏 1928

RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况

文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.

内核笔记 1万+

【小计】QWT类的一些使用方法

p, li { white-space: pre-wrap; } 鼠标滚轮放大缩小: QwtPlotMagnifier *PM = new QwtPlotMagnifier( ui->qwtPlot->canvas() ); 鼠标左键拖动波形: QwtPlotPanner *PQ= new QwtPlotPanner( ui->qwt

u012444155的专栏 803

基于AOD-Net与GAN的深度学习去雾算法开发

本文提出一种结合AOD-Net与GAN的深度学习去雾算法。通过改进的AOD-GAN网络架构,集成风格迁移模块,设计包含对抗损失、内容损失和风格损失的复合目标函数。实验表明,该方法在PSNR(24.67)、SSIM(0.92)和FID(32.15)指标上优于传统方法,实现了端到端的物理模型引导图像去雾。未来将优化多尺度特征融合和轻量化部署。

huanghm88的专栏 594

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Qt开源库之----Qwt

Qwt编译、安装、使用

书灯的博客 4028

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

转:使用QWT产生error LNK2001的原因及解决方法

在使用QWT进行二维曲线绘制,使用方法如下: class Plot: public QwtPlot { Q_OBJECT …… } 此时报错:error LNK2001: 无法解析的外部符号"public: static struct QMetaObject const QwtPlot::staticMetaObject" 出现这样的连接错误一般都是由于QwtPlot类的头文件...

weixin_30296405的博客 147

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

QWT错误static struct QMetaObject const QwtPlot

使用QWT例子oscilloscope出现如下错误: error LNK2001: unresolved external symbol "public: static struct QMetaObject const QwtPlot::staticMetaObject" (?staticMetaObject@QwtPlot@@2UQMetaObject@@B)  本来这个例子在examp...

qimo601的专栏 471

使用QWT产生error LNK2001的原因及解决方案

使用QWT进行二维曲线绘制,使用方法如下: classPlot: publicQwtPlot { Q_OBJECT …… } 此时报错:error LNK2001:无法解析的外部符号"public: static struct QMetaObject const QwtPlot::staticMetaObject" 出现这样的连接错误一般都是由于QwtPlot类的头文件中没有加Q_

MAY IT BE 1312

使用qwt提示error LNK2001 问题的解决方法

如果在继承了qwt控件的类中使用signal或slot,需要使用Q_OBJECT宏,即: class XX : public QwtPlot {   Q_OBJECT ... } 这时使用vc编译环境的话可能会提示 error LNK2001: unresolved external symbol "public: static struct QMetaObject const...

weixin_30780649的博客 187

QWT3D-3D曲线绘制

qwt3d-LINE3D

qq_51731421的博客 2816

Qwt之QwtDateScaleDraw时间标尺

原文地址:http://blog.youkuaiyun.com/desert187/article/details/12849133Qwt是用于绘制科学图形的Qt库。其中用于绘制坐标和曲线的类是QwtPlot类。QwtPlot提供的坐标默认以数值为单位,例如:(1,2,3,…,61,62…)。但是有些时候需要以时间或日期为单位刻度的标尺。Qwt是提供了这样的功能的。 QwtPlot类会默认创建两个Sc

e5Max的专栏 7156

QWT基础教程之sinuplot

2020-1-31 本次案例效果图如下所示,这次的效果不仅仅是下面看到的那么简单。这张图的内容是可以拖拽、缩放的。 本次案例还是一个sinusplot.cpp文件,它的类图如下所示 一共有三个类:FunctionData、ArrowSymbol、Plot,他们的父类如上图所示。其中FunctionData和ArrowSymbol是供Plot调用的。下面我们来逐个观察这些类的实现,以及他们之...

Shijia Yin 1019
上一篇: 字符串分割
下一篇: QT中窗口刷新事件的学习总结
de2dee
博客等级 码龄13年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值