Qwt开发环境搭建(保姆级教程)

news2024/11/17 3:46:39

1.简介

QWT,即Qt Widgets for Technical Applications,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。QWT工具库是基于Qt开发的,继承了Qt的跨平台特性。

主要功能

  • 图形绘制:Qwt提供了一套强大的2D图形绘制功能,可以绘制曲线图、柱状图、等高线图、饼状图等各种类型的图形。

  • 实时数据显示:Qwt支持实时数据的显示,非常适合用来创建动态的、实时更新的图形。

  • 交互操作:Qwt支持各种交互操作,比如缩放、平移、数据拾取等。

  • 控件:Qwt提供了各种控件,如滑动条、旋钮、表盘等,可以用来创建复杂的用户界面。

  • 图形打印和导出:Qwt支持将图形打印到打印机或导出为各种图像格式,如PNG、JPG、SVG等。

  • 跨平台:由于Qwt基于Qt,因此它可以在各种操作系统上运行,包括Windows、macOS、Linux等。

Qwt广泛应用于科学研究、工程设计、数据分析、医疗设备、工业控制等领域,是创建复杂、高性能GUI应用的强大工具。

Qwt与QCustomPlot比较

Qwt和QCustomPlot都是用于在Qt应用程序中创建图形和数据可视化的库。下面是它们之间的一些基本比较:

  • 易用性:对于初学者来说,QCustomPlot可能更易于入门。它的API直观易懂,而Qwt则有一些复杂性,需要更深入的理解。

  • 功能:Qwt和QCustomPlot都提供了一系列的功能,包括2D曲线图、图表、刻度、等等。然而,Qwt由于历史更长,它的功能可能更为丰富一些。

  • 社区支持:这取决于具体的时间和情况。社区的活跃度和维护情况可能会影响库的长期使用性和可靠性。到我最后更新知识库(2021年9月)为止,Qwt有更长的历史和成熟的社区,但QCustomPlot也有良好的支持。

  • 性能:两者的性能可能会根据具体的使用场景和实现方式而有所不同。总体来说,它们都可以在大多数常见的使用场景下提供良好的性能。

QCustomplot - 6.QCustomplot详解_Mr.codeee的博客-CSDN博客

2.编译

2.1下载

下载源码6.2.0.zip和帮助文档6.2.0.qch

qwt - Browse /qwt/6.2.0 at SourceForge.net

2.2编译

Qt Creator打开源码内的qwt.pro,选择Release版本。

打开编译开关,在qwt->other files->qwt.prf中,去掉QMAKE_RPATHDIR的注释。

注释掉qwtbuild.pri里的CONFIG += debug_and_release,qwt->designer->qwtbuild.pri。

先执行菜单中qmake,再点击构建,开始编译。

编译报错:我用的Qt_5_9_0_MinGW_32bit编译器。

解决方法:找到以下main.cpp,补全main函数。

 改为以下代码:再次编译成功。

int main(int argc,char* argv[])
{
    testSplines();
    testDuplicates();
}

3.安装

3.1将编译文件夹中的lib文件夹下的libqwtd.alibqwt.a文件复制到Qt安装目录下对应的lib文件夹下。

3.2将编译文件夹中的lib文件夹下的qwtd.dllqwt.dll文件复制到Qt安装目录下对应的bin文件夹下。

3.3编译文件夹designer->plugins->designer 所有文件复制到Qt安装目录下对应的plugins/designer文件夹下。

 

4.测试

新建工程untitled,同级目录新建3rdPart目录。

 以下是3rdPart的目录结构。

将6.2.0源码包中的src目录下的头文件拷贝到3rdPart/include目录。 

 修改工程untitled中的pro文件。

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = untitled
TEMPLATE = app

INCLUDEPATH += ../3rdPart/include
LIBPATH += ../3rdPart

win32:CONFIG(debug, release|debug){
    QWTLIB = qwtd
}else{
  QWTLIB = qwt
}

LIBS += -l$$QWTLIB

编写代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qwt_plot.h"
#include "qwt_compass.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QwtPlot *plot = new QwtPlot(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

运行截图:

5.在Qt Designer中拖拽QWT控件 

选择Qt Designer打开ui文件

随机拖动一个widget到ui界面。

 运行截图:

6.设置帮助文档

将2.1下载的6.2.0.qch放入到Qt的Docs目录下。

 选中QwtPlot类,按F1查看即可。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门01—从hello word!开始

1.第一个C程序 1.1 创建项目 第一次使用Visual Studio时&#xff1a; 1.2 创建文件 1.3 编写代码 编写第一个代码&#xff1a; #include<iostream> using namespace std; int main() {cout << "hello word!" << endl;system("pause"…

vue3+vite在线预览pdf

效果图 代码 <template><div class"pdf-preview"><div class"pdf-wrap"><vue-pdf-embed :source"state.source" :style"scale" class"vue-pdf-embed" :page"state.pageNum" /></div…

Ivs+keepalived:高可用集群

Ivskeepalived:高可用集群 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用&#xff0c;keepalived这个软件就是为了实现调度器的高可用。 注意&#xff1a;keepalived不是专门为lvs集群服务的&#xff0c;也可以做其他代理服务器的高可用。 lvs的高可用集群&a…

FFmpeg 解析Glide 缓存下的图片文件报错(Impossible to open xxx)

简单介绍下背景 我们业务有个功能把图片放到一个文件中&#xff0c;统一进行播放 &#xff0c;但是遇到一个棘手问题&#xff0c;某一个情况下 的图片 就是打不开 就是报错。以为是编译参数 。哪些格式没有加上。但经过测试 该加的都加了。 所以 不是编译参数的问题。 Impossi…

Qt之自定义QStringListModel设置背景色和前景色

一.效果 二.实现 QStringListModel里只实现了Qt::EditRole和Qt::DisplayRole,不能直接设置背景色和前景色,所以我们要继承QStringListModel,重写其中的data和setData方法,使其支持Qt::ForegroundRole和Qt::BackgroundRole。 QHStringListModel.h #ifndef QHSTRINGLISTMO…

matplotlib画图之纵坐标乱码

问题&#xff1a; 今天遇到一个问题就是关于使用python中的matplotlib库画学习率的变化图&#xff0c;出现了纵坐标乱码的现象。 具体如下图&#xff08;重点看纵坐标&#xff09;&#xff1a; 解决办法 我检查了传入的数据以为是传入的数据错了&#xff0c;想了半天数据错了和…

MySQL 约束条件,关键字练习,其他语句

创建表的完整语法 create table t1( id int, name varchar(43), age int ); create table 库名.表名( 字段名1 数据类型 约束条件 约束条件 约束条件 约束条件, 字段名2 数据类型 约束条件 约束条件 约束条件 约束条件, 字段名3 数据类型 约束条件 约束…

Elasticsearch聚合----aggregations的简单使用

文章目录 Getting started1、搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄&#xff0c;但不显示这些人的详情2、size0不展示命中记录&#xff0c;只展示聚合结果3、按照年龄聚合&#xff0c;并且请求这些年龄段的这些人的平均薪资4、查出所有年龄分布&#xff0c;…

【Matlab-基于形态学的权重自适应去噪】

【Matlab-基于形态学的权重自适应去噪】 1 引言2 数学形态学原理3 权重自适应的多结构形态学去噪4 实现代码4.1 主函数代码4.2 串、并联去噪4.3 图像权值计算4.4 计算 PSNR 值 5 实验结果 参考书籍&#xff1a;计算机视觉与深度学习实战:以MATLAB、Python为工具&#xff0c; 主…

仿真软件Proteus8.10 SP3 pro一键安装、汉化教程(附proteus8.10下载链接安装视频)

本破解教程仅供个人及 proteus 8.10粉丝们交流学习之用&#xff0c;请勿用于商业用途&#xff0c; 谢谢支持。此版本为Proteus8.10 SP3 pro 这里写目录标题 安装包下载链接:视频教程 一、安装软件解压二、软件安装三、汉化 安装包下载链接: http://www.eemcu.cn/2022/05/14/pr…

【COMP305 LEC 8】

LEC 8 Comp305 Part I. Artificial Neural Networks Topic 3. Hebb’s Rules 1. Hebb’s Rules and the historical background The McColloch-Pitts neuron made a base for a machine (network of units) capable of 1. storing information and 2. producing logical…

2.2.3 三层交换机实现VLAN之间的通信

实验2.2.3 三层交换机实现VLAN之间的通信 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.划分SW2A的VLAN&#xff0c;并分配接口。2.划分SW3A的VLAN&#xff0c;配置每个VLAN接口的IP地址。3.设计计算机的网关&#xff0c;实现不同VLAN之间和不同网络之间的通…

零售数据分析模板分享(通用型)

零售数据来源多&#xff0c;数据量大&#xff0c;导致数据的清洗整理工作量大&#xff0c;由于零售的特殊性&#xff0c;其指标计算组合更是多变&#xff0c;进一步导致了零售数据分析工作量激增&#xff0c;往往很难及时分析数据&#xff0c;发现问题。那怎么办&#xff1f;可…

什么是大数据平台?

大数据平台是一套综合性的软件工具和技术&#xff0c;旨在帮助组织收集、存储、管理、分析和可视化大量复杂的数据。这些平台通常提供一系列的服务和功能&#xff0c;使得用户能够更容易地处理和分析大数据&#xff0c;从而获得有价值的洞察和知识。 以下是大数据平台通常包括的…

【力扣刷题】解码方法

【力扣刷题】解码方法&#x1f60e; 前言&#x1f64c;91. 解码方法解题思路&#xff1a;解题源码分享&#xff1a; 运行结果截图&#xff1a; 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#…

RocketMQ如何保证消息被有序消费

RocketMQ如何保证消息被有序消费 消费者端如何接收有序消息 队列消费的两种模式 并发消费模式 当同一类消息被送入不同队列&#xff0c;且这些消息在处理上并不需要按时序消费时&#xff0c;可以考虑使用并发消费模式。 并发消费模式生产者会将消息轮询发送到不同的队列当…

OpenCV官方教程中文版 —— 直方图的计算,绘制与分析

OpenCV官方教程中文版 —— 直方图的计算&#xff0c;绘制与分析 前言一、原理1.统计直方图2. 绘制直方图3. 使用掩模 前言 • 使用 OpenCV 或 Numpy 函数计算直方图 • 使用 Opencv 或者 Matplotlib 函数绘制直方图 • 将要学习的函数有&#xff1a;cv2.calcHist()&#xf…

[100天算法】-不同路径(day 37)

题目描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为“Finish”&#xff09;。问总共有多少条不同的路径&#xff1f;例如…

MATLAB | 两种上色方式的旭日图绘制

嘿&#xff0c;这次真的是好久不见了&#xff0c;好不容易才有点空写点文章&#xff0c;这段时间忙到后台回复都有点来不及看&#xff0c;很抱歉有一部分后台留言刚看到就已经超过时限没法回复了&#xff0c;不过根据大家的留言&#xff0c;需求主要集中在希望出一期旭日图的教…

12、Python -- if 分支 的讲解和使用

目录 程序结构顺序结构分支结构分支结构注意点不要忘记冒号 if条件的类型if条件的逻辑错误if表达式pass语句 程序流程 分支结构 分支结构的注意点 if条件的类型 if语句的逻辑错误 if表达式 程序结构 Python同样提供了现代编程语言都支持的三种流程 顺序结构 分支结构 循环结构…