前言
毕业论文的可视化部分涉及了PCL和Python分别和Qt的组合,然而没有找到适合我直接参考的博客(这不就是等着让我来写嘛哈哈哈哈哈哈),于是写程序的时候就留着demo,想着之后一定要写个博客,现在趁着还没入职赶紧来写写~
全局环境准备
- 笔记本型号: 神舟战神 Z7-KP7D1
- 系统: Windows 10 (x64)
- 开发软件: Visual Studio 2015
- 编程语言: C++
- 库安装*: Qt 5.7.1(安装参考这篇博客:Qt5.7 + VS2015 环境搭建,我的安装路径:
D:\Lib\Qt\Qt5.7.1
)。 - 属性配置文件:在本篇博客中我的属性配置文件分别是
python35.props
、pcl181_msvc2015_x64_*.props
和vtkwithqt_8_0_0_msvc2015_x64_*.props
,如果你的所有相关库的安装路径和我一模一样,那你就可以click这个链接直接用啦~
Part 1: Qt + PCL
环境准备
辅助库安装: PCL-1.8.1 AllInOne(我的安装路径:
D:\Lib\PCL\PCL_1_8_1_msvc2015
)其他库编译: VTK8.0.0 With Qt 5.7.1(用来生成QVTKWidget组件,我的库的
CMAKE_INSTALL_PREFIX
路径:D:/Lib/PCL/PCL_1_8_1_msvc2015_VTKWithQt/3rdParty/VTKWithQt
)你说啥,没找到这个库?那就对了,这是我自己编译的,编译过程跟这个和这个(百度一下你就知道)差不太多吧。要是你没有什么独特的需求,可以click这个链接直接下载我编译好的库。
其他操作:需要把
*\VTKWithQt\plugins\designer\QVTKWidgetPlugin.dll
文件复制到*\Qt5.7.1\5.7\msvc2015_64\plugins\designer
路径下,再打开Qt Designer可以看到Widget Box最下面有QVTKWidget组件。
Demo
- 新建一个Qt GUI Application,Project名为PCLViewer。
- 添加属性表:这里要注意属性表的添加顺序,先添加PCL的属性表,再添加VTK的属性表,如下图所示。
否则会出现下面这个问题窗口vtkOutputWindow:“vtkInteractorStyleSwitchBase (00000236369F5980): Warning: Link to vtkInteractionStyle for default style selection.”
- 从我的Github([链接在这][9])上面下载这三个文件替换掉Project中的对应文件。
- Run!
Part 2: Qt (C++) + Python
环境准备
- 辅助库安装: Python 3.5.2 (Anaconda3 4.2.0)(我的安装路径:
D:\Lib\Anaconda3_python35
)。 - 其他操作:如果要在VS的Debug模式下跑程序,要把
*\Anaconda3_python35\include\pyconfig.h
文件中的下面这两行
# if defined(_DEBUG)
# pragma comment(lib,"python35_d.lib")
替换成
# if defined(_DEBUG)
# pragma comment(lib,"python35.lib")
并且把下面这三行注释掉。
#ifdef _DEBUG
# define Py_DEBUG
#endif
Demo
- 这个部分一共包括调用python脚本简单求和、String语句调用PyQt、String语句调用Python的Matplotlib、脚本调用PyQt(PyQt窗口中嵌入Matplotlib窗口)、脚本调用PyQt(其中调用了Python的Mplstronet库(不传参))和脚本调用PyQt(其中调用了Python的Mplstronet库(C++传参给Python))。效果如下图所示。
[9]: