Qt 学习 第6节 添加绘图控件Qwt

来源:互联网 发布:快意电梯营销网络 编辑:程序博客网 时间:2024/05/23 15:49

WIN7+Qt5.5.0+qwt-6.1.3环境搭建

一、准备环境

1、Qt5.5.0

下载地址:http://download.qt.io/archive/qt/5.5/5.5.0/

选择如下版本下载


安装之后添加环境变量这个就不用过多描述

2、qwt-6.1.3

下载地址:https://sourceforge.net/projects/qwt/files/qwt/6.1.3/

选择如下文档下载,主要下载后缀为zip的压缩包,帮助文档根据需要是否下载,下面也介绍如何安装帮助文档

3、安装帮助文档(不想安装帮助文档,这一步略过)

将下载的qwt-6.1.3.qch放入qt安装目录下,例如我的D:\Qt\Qt5.5.0\Docs\Qt-5.5

打开Qt在“工具>>选项>>帮助>>文档>>添加“选择刚才文档的地方之后确定,在帮助手册中这时已经可以查看帮助文档了




二、QWT的安装

1、解压下载的qwt压缩包到d:\Qt(这里位置自己定义),解压后的目录如下


2、打开win7自带的powershell

这个是个人习惯,当然也可以使用cmd或者qt自带的,只要环境变量设置好,这几个根据跟人习惯,我习惯用powershell,这个跟linux系统下控制台一样,指令很多都兼容。

使用Qt自带的请打开,效果是一样的


3、编译QWT生成库
在控制台窗口下输入cd D:\Qt\qwt-6.1.3(这个就是你解压的qwt压缩包的路径),搞过linux的都知道这个指令很熟悉

回车之后进入D:\Qt\qwt-6.1.3目录了,可以输入ls(查看目录),回车,如下就是解压qwt-6.1.3后的目录

在控制台窗口按照如下三步生成库文件

1、qmake qwt.pro  >>回车
2、qmake                >>回车
3、mingw32-make.exe >>回车  (这一步我在qt4下直接使用make指令是可以识别的),这一步时间有点长,可以做点其它事情
4、mingw32-make.exe install >>回车(安装在哪个目录下,默认在c盘),在下面红框里面的文件可以修改安装目录     


这里我已经修改过,在d:/Qt下
[plain] view plain copy
  1. win32 {  
  2.     QWT_INSTALL_PREFIX    = D:/Qt/Qwt-$$QWT_VERSION  
  3.     # QWT_INSTALL_PREFIX = C:/Qwt-
    QWTVERSIONqt
    QT_VERSION  
  4. }  


等待安装完成之后目录如下:


以上指令若不识别应该是qt的目录没有进入加入系统环境变量,加入后应该是可以识别的。

4、文档移植

在D:\Qt\qwt-6.1.3\lib目录下有四个文件,将这四个文件进行如下操作,

将后缀为*.dll的文档复制到D:\Qt\Qt5.5.0\5.5\mingw492_32\bin目录下
将后缀为*.a的文档复制到D:\Qt\Qt5.5.0\5.5\mingw492_32\lib目录下

在D:\Qt\qwt-6.1.3\plugins\designer目录下的文档进行如下操作,

将里面的所有文档复制到D:\Qt\Qt5.5.0\5.5\mingw492_32\plugins\designer目录下
这时打开qt designer就可以看见qwt控件了,

5、测试

这步是必须要做的,在qt creator中新建界面文件在qt designer中打开随便拖几个QWT控件运行试试


会发现如下错误找不到头文件,这时因为我们使用到qwt头文件,


(这一步也很关键哦)在第三部编译过后生成一个叫include的文件夹,将文件夹里面的所有内容进行如下操作


首先在D:\Qt\Qt5.5.0\5.5\mingw492_32\include目录下新建文件夹qwt,将include中的所有文件复制到这个新建的文件夹中,


在我们新建的工程*.pro中加入以下代码
[plain] view plain copy
  1. DEFINES += QT_DLL QWT_DLL  
  2. LIBS += -L"D:\Qt\Qt5.5.0\5.5\mingw492_32\lib" -lqwtd  
  3. LIBS += -L"D:\Qt\Qt5.5.0\5.5\mingw492_32\lib" -lqwt  
  4. INCLUDEPATH += D:\Qt\Qt5.5.0\5.5\mingw492_32\include\qwt  
重新编译,可以编译通过,并且出现qwt控件,就表示qwt环境已经搭建ok



qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等,目前已经应用到许多工业领域,同时qwt也致力于3d的开发。但许多时候,qwt的安装配置难到了许多人,我曾经也在这里原地踏步很久,为了给大家开发方便,把我的安装经验分享给大家,避免少走点弯路。

1.前言

qwt有多强大,可以看看官网的截图:

曲线类截图:http://qwt.sourceforge.net/curvescreenshots.html

散点图:http://qwt.sourceforge.net/scatterscreenshots.html

频谱及外形轮廓图:http://qwt.sourceforge.net/spectrogramscreenshots.html

工业控件类:http://qwt.sourceforge.net/controlscreenshots.html

其功能远不止展示的这些,还包括移动图线上的点修改图线,在画布上任意作图,另外,qwt控件最大的优点是它的灵活性,但这个灵活性也导致它偶尔会很麻烦


MFC
  • VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入
  • VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形(折线图,柱状图)
  • TeeChart绘图控件 - 之三 - 提高绘图的效率
  • MFC下好用的高速绘图控件-(Hight-Speed Charting)
  • 绘制动态曲线

Qt

  • qt超强精美绘图控件 - QCustomPlot一览
  • qt超强绘图控件qwt - 安装及配置
  • QtChart Qt官方绘图控件


2.下载最新的qwt

如果你是使用qt5,那么需要最新版本的qwt控件,下载地址(已更新):http://sourceforge.net/projects/qwt/


windows下编程下载zip,ubuntu下载bz2的

还有个pdf说明文档,下不下都无所谓,因为安装包里面已经有文档了

下面说说安装的问题

3.安装


把下载的文件解压缩放到一个固定目录里
我在qt安装目录下面新建文件夹qtctrl,把所有第三方控件都放置在这里的
解压完的文件如下图所示

下面对它进行编译

3.1 编译控件

许多人在这里止步,在网上看到许多复杂的教程,又要写命令行又要设置啥啥啥的,其实很简单,直接双击qwt.pro这个文件,用qt Creator打开(建议用qt Creator打开)


点编译(先在debug下和release模式下编译都一样),就开始编译了,你可以去上个厕所,喝杯茶,上上网

编译完会有个错误提示


这个正常,不用理他,只要编译输出那里没有错误提示就行

好了,这就ok了,复杂的编译过程就是点几个鼠标而已

编译完后会在原来的lib文件夹下生成dll和lib,同时会在目录外生成qt creator用的插件dll


我们用到的是qwt.dll,qwt.lib,qwtd.dll,qwtd.lib。前者对应release版本,后者对应debug版本,其他文件可以删除

在build-qwt-Desktop_Qt_5_1_1_MSVC201x_32bit-Release目录下的designer目录下的plugins目录下的designer目录下(@_@,囧rz)你会发现qwt_designer_plugin.dll和qwt_designer_plugin.lib


这些就是配置qwt的必要文件

3.2配置qwt

3.2.1 集成进Qt Designer

找到qt安装目录


目录下的tools文件夹是qt creator的安装位置,里面就是QtCreator,找到QtCreator\bin\plugins\designer\文件夹下,把编译好的qwt_designer_plugin.dll放入。打开qtcreator,就能看的qwt控件了。

拖放几个控件试着运行,这时软件肯定是编译不过的


由于头文件dllqt creator都没有找到,所以肯定是编译不过的,现在又两种方法

3.2.2 集成Qt Creator

方法1:(建议使用)

需要用到qwt的项目,打开它的pro文件
加入如下语句:
其中根据每个人的文件位置不一样,只需要改动第一个语句就可以,就是定位到qwt的安装位置的语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#qwt设置
QWT_ROOT = d:/Qt/qtctrl/qwt-6.1.0#这里就是你qwt控件的位置,根据每个人计算机的不同来修改,别直接ctrl+c,ctrl+v

include( $${QWT_ROOT}/qwtfunctions.pri )

INCLUDEPATH += $${QWT_ROOT}/src

DEPENDPATH  += $${QWT_ROOT}/src

%QWT_CONFIG  += QwtDll %如果需要使用继承时需要这句 -- 下面依次类推

contains(QWT_CONFIG, QwtFramework) {
    LIBS      += -F$${QWT_ROOT}/lib
}
else {

    LIBS      += -L$${QWT_ROOT}/lib
}
qwtAddLibrary(qwt)
contains(QWT_CONFIG, QwtOpenGL ) {

    QT += opengl
}
else {

    DEFINES += QWT_NO_OPENGL
}
contains(QWT_CONFIG, QwtSvg) {

    QT += svg
}
else {

    DEFINES += QWT_NO_SVG
}
win32 {
    contains(QWT_CONFIG, QwtDll) {
        DEFINES    += QT_DLL QWT_DLL
    }
}
#end qwt set


然后可以成功编译应用程序了

方法2:(非常不建议)

把lib文件放置qt sdk的lib文件夹下,dll文件放置在sdk的bin文件夹下
qt sdk目录根据版本不同不一样,我的是vs2012版的,在c:\Qt\Qt5.1.1\5.1.1\msvc2012\目录下其他的同理,2010的就在Qt\Qt5.1.1\5.1.1\msvc2010\

把qwt.dll和qwtd.dll复制到qt安装目录下的bin文件夹中
把qwt.lib和qwtd.lib文件复制到qt安装目录的lib文件夹下



把src文件夹下的头文件复制到qt安装文件夹下的include文件夹下(新建qwt文件夹)

这样就可以了,但是还是不能编译成功,因为需要设置一下pro文件
在pro文件下加入如下语句

1
2
3
4
5
6
7
8
9
#qwt设置
include(d:/Qt/qwt-6.1.0/qwtfunctions.pri)
DEFINES *= QWT_DLL
CONFIG += qwt
LIBS += -Ld:/Qt/Qt5.0.2/5.0.2/msvc2010/lib-lqwt
INCLUDEPATH += d:/Qt/qwt-6.1.0/src
DEPENDPATH += d:/Qt/qwt-6.1.0/src
qwtAddLibrary(qwt)
#end qwt




至此qwt的安装配置就完成了。

qwt文件夹下有说明文档和例子,通过他们都能掌握基本的操作,这里暂不细说了


注意若:Qtcreator 中不能显示Qwt组件需要下载Qtctreator 源码用qtcreator重新编译(官方下载的.exe是msvc编译)
Qtcreator和Qt的编译版本必须一致

原创粉丝点击