环境是 ubuntu14.04 + qt 5.8 + ros(indigo)
1.配置qt的启动文件
我的配置文件在这个路径
sudo gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop
打开后的配置文件
[Desktop Entry]
Type=Application
Exec=bash -i -c /home/asus/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 /home/asus/Qt5.8.0/Tools/QtCreator/bin/qtcreator
其中“bash -i -c”是自己加的,后面是相应可执行路径
2.使用现成的Qt-gui模板
直接用catkin_create_qt_pkg
命令创建带Qt界面的ROS package
先安装,执行如下命令:
sudo apt-get install ros-indigo-qt-ros
使用
catkin_create_qt_pkg
命令创建一个名为test_for_qt的package
cd catkin_for_qt/src/
catkin_create_qt_pkg test_for_qt
如下图
得到的package包含
我们可以使用catkin_make进行编译,得到的可执行文件在
/home/asus/catkin_for_QtGui/devel/lib/路径下,运行roscore,将其托到命令行后即可运行,如图
因为我不是第一次运行,右边的部分已经被隐藏,
现在最大的问题是 我们QT并没有ROS相关的插件(现在有的插件装不了的,不知道为啥),所以刚刚创建的test_for_qt 包 ,我并不能导入QT进行编译,而且也没有./pro文件,
下面让Qt加载ROS相关的库,然后将这个package“移植”进去,其实步骤就一步
3.再配置QT
先创建一个新的Mai nWindow
然后将上一步得到test_for_qt包里的四个文件拷贝到新建的Mainwindow工作目录下,接着以add existing di r ectory 的方式将四个文件夹导入,并且将原来的Mainwindow文件移除,如图
接下来打开.pro文件,将下面文件添加进去
INCLUDEPATH += /opt/ros/jade/include
DEPENDPATH += /opt/ros/jade/include
INCLUDEPATH += /home/USERNAME/bzrobot_ws/devel/include
LIBS += -l:/usr/lib/x86_64-linux-gnu/libboost_thread.so
LIBS += -l:/usr/lib/x86_64-linux-gnu/libpthread.so
LIBS += -L/opt/ros/jade/lib -lroscpp -lrospack -lpthread -lrosconsole -lrosconsole_log4cxx -lrosconsole_backend_interface -lxmlrpcpp -lroscpp_serialization -lrostime -lcpp_common -lroslib -ltf -lyaml-cpp -lkdl_conversions
LIBS += -l:/opt/ros/jade/lib/libroslib.so
如图
就可以正常编译了
下面是我修改示例的截图
以上参照了如下文章,部分如下:
http://blog.csdn.net/qianniu_/article/details/79014262
http://blog.csdn.net/u014610460/article/details/79355533
http://blog.csdn.net/w383117613/article/details/50392893