QWT+qtcreator 编译、安装使用

目录:一、Qwt简介

   二、QWT编译

一、Qwt简介

  QWT:Qt Widgets for Technical Applications,是开源的2D绘图库。

  

二、QWT编译

  2.1 环境 WIN7+Qt5.1.0

  

  • 使用SVN客户端下载源码
  • designer目录:存放QWT插件的源码
  • examples目录:存放QWT的示例(源码、可执行程序)
  • src目录:存放QWT的源码
  • textengines目录:存放数学指标语言的文本驱动引擎代码等

  2.2 编译

  官网上有说明。

  方式一、双击qwt.pro(使用Qt Creator打开),进行编译(qmake->build),等待了很长时间都没编译完成,于是放弃这种方式。

  方 式二、使用qmake与mingw32-make install (msvc使用nmake)

   详细步骤:在WIN终端中:> G:

               > cd G:\SoloSten\work\qwt\qwt-6.1.2\qwt-6.1.2

               > qmake

                 > mingw32-make install  //将会把.dll .lib和.h等文件提取出来,默认C盘

  编译完成后将会在lib下生成qwt.dll(release调用)、qwtd.dll(d:debug调用)和lib,同时会生成qt creator使用的插件qwt_designer_plugin.dll、libqwt_designer_plugin.a(只能用于Designer,而不能用于qtcreator集成中的designer,原因请看2.3)。

  

  

  1. 将C:\Qwt-6.1.2\lib\qwtd.dll、qwt.dll拷贝到F:/software/Qt5_1/5.1.1/mingw48_32/bin下,将C:\Qwt-6.1.2\lib\qwtd.lib、qwt.lib拷贝F:/software/Qt5_1/5.1.1/mingw48_32/lib下(F:/software/Qt5_1/5.1.1/mingw48_32为QT安装目录)。
  2. 将C:\Qwt-6.1.2\plugins\qwt_designer_plugin.dll拷贝到F:/software/Qt5_1/5.1.1/mingw48_32\bin\plugins\designer目录下

  3. 将C:\Qwt-6.1.2\include目录下的所有.h和C:\features\qwt.prf、qwtconfig.pri、qwtfunctions.priw分别放入一个空文件夹Qwt和Qwt\features中,再将该Qwt拷贝到F:\software\Qt5_1\5.1.1\mingw48_32\include\目录下。
  4. 配制完后,结果图如下: 

  2.3 Qt Designer能使用插件,但是Qt Creator里Designer无该插件

  原因:因为Qt官方编译的Qt Creator是用VC编译的,而你的插件是用MinGW编译,两者的dll并不能通用。

  解决方式一:mingw编译qt官网下载的qt creator的源码,保用编译完成qtcreator就可以解决dll只能用于Designer,而不能用于qtcreator集成中的designer问题。

  解决方式二:直接保用Qt Designer来设置窗口控件,不使用qtCreator 里Designer(程序也能显示自定插件,但是qtCreator 里Designer是显示不了的)。

  2.4 解决Qt Qwt编译成功之后运行的时候,程序却异常退出,提示信息:QWidget: Must construct a QApplication before a QPaintDevice

  原因:是因为debug编译模式使用了release库文件或者是release编译模式使用debug库文件;即Debug/Release的Dll混到一起。

  比如:qwtd.dll是debug时调用,qwt.dll是release时调用。(区别在于一个有d,一个无)

  解决:方式一、打开.pro,未修改:LIBS += -L"F:/software/Qt5_1/5.1.1/mingw48_32/lib" -lqwt

        修改后的:LIBS += -L"F:/software/Qt5_1/5.1.1/mingw48_32/lib" -lqwtd  #qwtd是debug,qwt是release

    方法二、打开.pro, 添加 CONFIG += release #即指定的LIBS与之相匹配

    

三、Qt Qwt案例

在pro中加入:

LIBS += -L"F:/software/Qt5_1/5.1.1/mingw48_32/lib" -lqwtd

INCLUDEPATH += F:/software/Qt5_1/5.1.1/mingw48_32/include/QWT

include (F:/software/Qt5_1/5.1.1/mingw48_32/include/Qwt/features/qwt.prf)

注意:这.ui是用Designer添加的控件,而不是qt creator中的Designer中添加。

Qt之Qwt学习之安装的更多相关文章

  1. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  2. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  3. Qt 智能指针学习(7种指针)

    Qt 智能指针学习 转载自:http://blog.csdn.net/dbzhang800/article/details/6403285 从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ ...

  4. Hbase深入学习(二) 安装hbase

    Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...

  5. Hadoop学习------Hadoop安装方式之(二):伪分布部署

    要想发挥Hadoop分布式.并行处理的优势,还须以分布式模式来部署运行Hadoop.单机模式是指Hadoop在单个节点上以单个进程的方式运行,伪分布模式是指在单个节点上运行NameNode.DataN ...

  6. 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D

    layout: post title: 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI- ...

  7. QT在windows下的安装与配置

    先了解Qt: Qt一直以来,分为商业.开源两个版本,商业版本为用户提供了二级制的动态库,直接安装既可以使用,但是需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,用户需要自行编译,才 ...

  8. 从零开始学习CocoaPods安装和使用

    从零开始学习CocoaPods安装和使用   转载: Code4App原创:http://code4app.com/article/cocoapods-install-usage http://m.i ...

  9. Qt快速入门学习笔记(基础篇)

    本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&am ...

随机推荐

  1. PHP 中 define() 和 const 定义常量时的区别

    自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数:   1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...

  2. zookeeper、kafka、storm install

    安装顺序 zookeeper,kafka,storm install zookeeper 1.上传tar包,解压tar tar -zxvf   zookeeper-3.4.6.tar.gz 2.复制 ...

  3. jq异步上传文件(转载)

    最近在使用ajaxForm,随便把使用方法记下下来,以便以后回顾. 1 ,引入依赖脚本 <script type="text/JavaScript" src="/j ...

  4. spring 声明式事务管理

    简单理解事务: 比如你去ATM机取5000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉5000元钱:然后ATM出5000元钱.这两个步骤必须是要么都执行要么都不执行.如果银行卡扣除了5000块但 ...

  5. CentOS下设置MySQL的root密码

    CentOS刚装的MySQL一般需要重设MySQL密码,可以用以下方法重设. 方法一. Js代码  # /etc/init.d/mysqld stop  # mysqld_safe --user=my ...

  6. 微信webview

    会露出灰色的地步 https://segmentfault.com/q/1010000004295291 有说用iscroll5来解决,但是明显有bug啊 https://segmentfault.c ...

  7. eclipse svn提交报错

    修改文件格式:右键-properties-text file encoding-other UTF-8

  8. chrome经常崩溃解决过程

    之前chrome常崩溃,也没有找到原因,就将就着用吧,一直用到今天,今天连续几次崩了,突然想到,难道是因为我访问的域名没有解析(能想到这个,是因为今天分配公司域名测试的时候常输错),于是就输入一个不存 ...

  9. 为什么.Net要求序列化的类必须有一个无参数的构造函数

    刚才用xml序列化器,序列化一个类,结果报错说序列化的类必须带有一个无参的构造函数,好奇怪啊.为什么要有这么苛刻的条件,而且xml序列化还要求序列化的成员是public. 我以前一直觉得序列化器是一个 ...

  10. 判断整数是否能被n整除

    (1)1与0的特性:         1是任何整数的约数,即对于任何整数a,总有1|a.         0是任何非零整数的倍数,a≠0,a为整数,则a|0. (2)若一个整数的末位是0.2.4.6或 ...