系统测试环境:

  • 系统版本:Ubuntu16.04
  • ROS版本:kinetic
  • QT版本:QT5.8

QT5.8安装

  进入官网下载,对应5.8下载地址https://download.qt.io/archive/qt/5.8/5.8.0/

  注意版本,对应的系统下载的软件名为qt-opensource-linux-x64-5.8.0.run,接着为.run文件赋权限并且执行,在终端输入

cd ~/Downloads
chmod +x qt-opensource-linux-x64-5.8.0.run
./qt-opensource-linux-x64-5.8.0.run

  安装过程,选择路径尽量选择到/opt下.

  安装完成后,从左上角的Dash Home中输入qt,如果看到了qt图标说明安装成功.

设置快捷方式

  打开终端,输入命令

gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop
gedit /usr/share/applications/DigiaQtOpenSource-qtcreator.desktop

  上述命令需要根据你安装的qt路径来决定,如果你装在/home下,则输入第一行指令,如果安装在/opt下,则输入第二行指令.

  修改具体的桌面快捷方式

[Desktop Entry]
Type=Application
Exec=/home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Community)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;

  修改Exec变量,中间添加bash -i -c ,最后变成Exec=bash -i -c /home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator,目的是为了能够编译ros环境,最后保存.

安装ros_qtc_plugin插件

  在16.04下,可以直接通过apt进行安装,具体的指令为

sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial 
sudo add-apt-repository ppa:levi-armstrong/ppa 
sudo apt update && sudo apt install qt57creator 
sudo apt install qt57creator-plugin-ros

  对于ppa安装方式,对应的删除方式为

sudo add-apt-repository -r ppa:levi-armstrong/qt-libraries-xenial 

  安装成功后,同样在左上角找到安装的具体快捷方式,说明安装成功.

  之后需要修改系统配置文件让Qt启动器选择新版的Qt

sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

  将内容修改为你下载好的Qt的bin与lib文件夹

/opt/Qt5.8.0/5.8/gcc_64/bin
/opt/Qt5.8.0/5.8/gcc_64/lib

   其中的路径需要根据你自己的下载地址进行选择.

利用ros_qtc_plugin导入ros功能包

  插件本身可以新建工作空间并且导入已存在的工作空间,同时可以新建对应的Package,Node,launch,urdf文件

Ubuntu16.04下使用ros_qtc_plugin在qt下进行编译

 这里注意,因为Qt会在工作空间会生成catkin_ws.workspace,并通过读取该文件来处理工作空间,而本身ros没有这个文件,所以需要新建一个工作空间,并且名字与你想要导入的工作空间名字相同.

Ubuntu16.04下使用ros_qtc_plugin在qt下进行编译

 这样就能看到你想要导入的工作空间了,之后还有两个步骤.

1.将工作空间下的CMakeList.txt文件解锁,具体的指令为

sed -i '' CMakeLists.txt

2.导入除开src之外的文件夹以及头文件

打开文件catkin_ws.workspace,输入

<?xml version="1.0"?>
<Workspace>
    <Distribution name="kinetic"/>
    <DefaultBuildSystem value="0"/>
    <WatchDirectories>
        <Directory>src</Directory>

       <Directory>你想加入的文件夹名字</Directoory>
    </WatchDirectories>
    <Directory>/opt/ros/kinetic/include</Directory>
</Workspace>

之后编译通过即可

相关文章: