zoukankan      html  css  js  c++  java
  • qt超强绘图控件qwt

    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控件最大的优点是它的灵活性,但这个灵活性也导致它偶尔会很麻烦

    2.下载最新的qwt

    如果你是使用qt5,那么需要最新版本的qwt控件,下载地址:http://sourceforge.net/projects/qwt/files/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,找到QtCreatorinpluginsdesigner文件夹下,把编译好的qwt_designer_plugin.dll放入。打开qtcreator,就能看的qwt控件了。

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

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

    3.2.2 集成Qt Creator

    方法1:(建议使用)

    需要用到qwt的项目,打开它的pro文件

    加入如下语句:

    其中根据每个人的文件位置不一样,只需要改动第一个语句就可以,就是定位到qwt的安装位置的语句

    #qwt设置
    QWT_ROOT = d:/Qt/qtctrl/qwt-6.1.0
    include( $${QWT_ROOT}/qwtfunctions.pri )
    INCLUDEPATH += $${QWT_ROOT}/src
    DEPENDPATH  += $${QWT_ROOT}/src
    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:QtQt5.1.15.1.1msvc2012目录下其他的同理,2010的就在QtQt5.1.15.1.1msvc2010

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

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

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

     

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

    在pro文件下加入如下语句

    #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文件夹下有说明文档和例子,通过他们都能掌握基本的操作,这里暂不细说了

    注:

    当你用qt creator编译发现连接出问题时,你可以试下点“构建”-“清理所以项目”,当这个也没有反应时,你可以手动把编译的那个文件夹(默认和项目同级类似于“build-qwt-Desktop_Qt_5_1_1_MSVC201x_32bit-Release ”这样的样式)全部删除。之后再编译,如果还有连接问题就是你代码有问题了。

  • 相关阅读:
    如何解决python连接数据库编码问题(python传数据到mysql乱码)'ascii' codec can't encode _mysql_exceptions.OperationalError: (1366, "Incorrect string value:?
    git 和 github 链接
    python 链接 redis 失败 由于目标计算机积极拒绝,无法连接
    假设检验,alpha,p值 通俗易懂的的理解。
    python 爬虫学习之路
    SQL邮件服务(解决各种疑难杂症)+案例 + 使用SQLserver 邮件系统发送SQL代理作业执行警告
    使用tomcat,不能连接localhost/8080的解决办法
    制作R中分词的字典的办法
    Windos 下python2.7安装 pymssql 解决方案
    R语言做相关性分析
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/3762013.html
Copyright © 2011-2022 走看看