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

2023-10-25 14:30

本文主要是介绍Qwt开发环境搭建(保姆级教程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = untitled
TEMPLATE = appINCLUDEPATH += ../3rdPart/include
LIBPATH += ../3rdPartwin32: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查看即可。

 

这篇关于Qwt开发环境搭建(保姆级教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则