热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT5.3+VS2013+QCustomPlot+QwtPlot+QwtPlot3D使用环境配置

VS安装QT后运行环境所需配置安装好QT和QT在VS下的插件之后:1.打开VS,找到QT5→QTOption,如下:2.配置

VS安装QT后运行环境所需配置

    安装好QT和QT在VS下的插件之后:

1.打开VS,找到QT5→QT Option,如下:

2.配置电脑环境变量,在系统变量→Path下增加QT的动态库所在文件夹,也就是bin文件夹路径:

QT使用QCustomplot库

    官网下载:http://www.qcustomplot.com/

    直接下载QCustomplot,然后把.h文件和.cpp文件添加到工程即可。

QT使用QwtPlot库

    官网下载:http://qwt.sourceforge.net/

    打开VS2013(或者其他版本)的VS命令提示符,如下:

    然后转到qwt文件夹,输入如下命令开始编译:

cd E:\QWT

qmake qwt.pro

nmake

----------漫长的等待-----------

cd designer

qmake designer.pro

nmake

----------漫长的等待-----------

cd ..

cd examples

qmake examples.pro

nmake

----------漫长的等待-----------

编译完成之后,开始配置:

(1)将E:\QWT\lib下的qwtd.dll、qwt.dll拷贝到QT路径的bin文件夹下,将qwtd.lib、qwt.lib拷贝QT路径的lib文件夹下。

(2)将E:\QWT\designer\plugins\designer目录下的qwt_designer_plugin.dll和qwt_designer_plugin.lib拷贝到QT路径的\plugins\designer目录下。

(3)将E:\QWT\src目录下的所有.h和.cpp放入一个空文件夹QWT中,再将该文件夹拷贝到QT路径的include目录下。

(4)在VS中C/C++->预处理器:预处理器定义里面添加QWT_DLL。不添加这步,使用时编译会报错,因为qwt采用动态库抛出类的方式将QwtPlot供使用者使用,必须定义QWT_DLL才能使用qwt的抛出类。(注意,如果使用静态编译的qt库,并用静态版本的qt的qmake生成的qwt静态库的话,是不需要QWT_DLL的,添加了反而会报错)

QT使用QwtPlot3D库

  从https://github.com/sintegrial(http://sintegrial.com/ 已经失效)下载最新版的QwtPlot3D,这个不是官方原版,是另一个团队修改的,支持QT5.3.

  解压文件到某个路径,注意,路径不能有中文。

  1.找到src文件夹,打开src.pro,用qt creater分别在debug和release模式下进行构建,分别会得到两个qwtplot3d.lib,一个是debug版本,一个是release版本,为了区分,把debug版本得到的命名为qwtplot3dd.lib(注意,这两个库是静态库,不同于动态库里面的lib,所以不需要dll)。

  2.把qwtplot3dd.lib和qwtplot3d.lib拷贝到QT路径的lib文件夹下面。

  3.把qwtplot3d的所有头文件拷贝到一个文件夹Qwt3D中,再把这个文件夹拷贝到QT路径的include目录下。

  4.之后的设置就是在VS的链接器->输入->附加依赖性中添加qwtplot3dd.lib或者qwtplot3d.lib。

QT静态发布

  首先参考此文http://blog.csdn.net/wwkaven/article/details/37668859,获取编译的结果之后。然后把环境变量中的path添加编译结果的bin路径,对qwt采用动态编译类似的方式编译(注意,此时不要存在两个qmake的路径,虽然我没有测试,但是可能会有问题,所以最好一次只有一个qmake的环境变量),不过此时需要修改qwtconfig.pri里面的一项,就是把带DLL的那一行注释掉。然后到qwt文件夹下qmake,nmake。

  而qwtplot3d无法进行静态编译,所以为了发布程序,把所有的.h文件盒.cpp文件全部放到项目中去。

  如果你原有的程序是用动态版本的qt创建的,在VS中更改到静态版qt需要先设置qt5->qt option,里面添加动态版的路径,然后右键项目:

 

  进行change solution's ..,选择动态版的qt。此时程序就会更新QTDIR,否则不会更新QTDIR。

  之后,就需要修改附加依赖项啥的,首先是附加库目录,需要根据情况加入plugin/文件夹下的模块路径,其中plugin\platforms是必须的,其他视情况而定,

  对于插件,不仅要导入lib,还要进行插件声明:

#include #ifdef _DEBUG //Debug mode
#pragma comment (lib,"Qt5PlatformSupportd.lib")
#pragma comment (lib,"qwindowsd.lib")
#pragma comment (lib,"windowsprintersupportd.lib")
#pragma comment (lib,"qoffscreend.lib")
#pragma comment (lib,"qminimald.lib")
#pragma comment (lib,"qmngd.lib")
#pragma comment (lib,"qsvgd.lib")
#pragma comment (lib,"qicod.lib")
#pragma comment (lib,"qjp2d.lib")
#else //Release mode
#pragma comment (lib,"Qt5PlatformSupport.lib")
#pragma comment (lib,"qwindows.lib")
#pragma comment (lib,"windowsprintersupport.lib")
#pragma comment (lib,"qoffscreen.lib")
#pragma comment (lib,"qminimal.lib")
#pragma comment (lib,"qmng.lib")
#pragma comment (lib,"qsvg.lib")
#pragma comment (lib,"qico.lib")
#pragma comment (lib,"qjp2.lib")
#endifQ_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
Q_IMPORT_PLUGIN(QICOPlugin)
Q_IMPORT_PLUGIN(QJp2Plugin)
Q_IMPORT_PLUGIN(QSvgPlugin)

  然后,如果是直接用静态版生成的项目,不需要对链接器->输入进行修改,而如果是从动态版更改到静态版,需要检查此项,一般会需要如下:

kernel32.lib
user32.lib
shell32.lib
uuid.lib
ole32.lib
advapi32.lib
ws2_32.lib
gdi32.lib
comdlg32.lib
oleaut32.lib
imm32.lib
winmm.lib
qtmain.lib
Qt5Core.lib
Qt5Gui.lib
Qt5Widgets.lib
Qt5PrintSupport.lib
Qt5OpenGL.lib
opengl32.lib
glu32.lib
qwt.lib
Qt5PlatformSupport.lib
Qt5Svg.lib

  最后运行编译即可。

转:https://www.cnblogs.com/yanqi0124/p/3951602.html



推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
author-avatar
333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有