目录
一、Qt简介
Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(成为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。
特点:丰富的图像化界面,跨平台
二、Qt安装
1.通过apt安装
sudo apt-get install qtcreator
这种安装方式比较方便,比较快,但是存在一个问题:安装的软件版本是由软件仓库决定的,软件版本可能比较旧,而且使用过程中比较卡。
注:不推荐这种方式!
2.通过安装包安装
1)安装包下载:
推荐下载5.0以上版本的(本文下载5.9.9版本,后面代码分为通用和5.9.9版本安装)
注:".exe"为Windows版本
".dmg"为Mac版本
".run" 为Linux版本(下载这个)
2)安装包添加可执行权限:
需要先进入安装包所在目录
cd xxx # xxx为安装包所在目录
chmod a+x qt-opensource-linux-x64-xxxx.run #xxxx表示你下载的具体版本
5.9.9版本:
chmod a+x qt-opensource-linux-x64-5.9.9.run
3)安装
双击安装包安装
注:要勾上“Desktop gcc 64-bit”
3.添加qtcreator到环境变量:
sudo nano /usr/bin/qtcreator
添加如下内容:
#!/bin/sh
export QT_HOME=/home/xxxx/Qtxxx/Tools/QtCreator/bin
$QT_HOME/qtcreator $*
注:
- “/home/xxxx/Qtxxx/Tools/QtCreator/bin”为你实际的安装目录:前面的xxxx为你的用户名,Qtxxx为Qt的版本号
- Ctrl+O:写入
- 写入后要回车确定
- Ctrl+X:退出
4.增加可执行权限:
sudo chmod a+x /usr/bin/qtcreator
5.终端运行Qt
qtcreator
二、创建Qt功能包
1.安装依赖
sudo apt-get install ros-melodic-qt-create
sudo apt-get install ros-melodic-qt-build
注:若不是melodic版本,将melodic改成其他版本号即可
2.创建Qt功能包
catkin_create_qt_pkg 功能包名 依赖1 依赖2
3.例子:创建class1_ros_qt_demo功能包
mkdir -p ~/catkin_qt/src
cd ~/catkin_qt/src
catkin_create_qt_pkg class1_ros_qt_demo roscpp rviz
cd ~/catkin_qt
catkin_make
这里会编译出错:
这是因为功能包是支持Qt4版本的,而我们安装的是Qt5版本
4.配置功能包
更改CMakeLists.txt:
注:是更改功能包class1_ros_qt_demo下的CMakeLists.txt,不是src目录下的。
1)设置包含当前目录
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2)添加qt库
find_package(Qt5 REQUIRED Core Widgets)
set(QT_LIBRARIES Qt5::Widgets)
3)删除
rosbuild_prepare_qt4(QtCore QtGui)
4)更改
QT4_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT4_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT4_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
将QT4改为QT5
QT5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
此时编译仍会出错:
5)再次更改
cd ~/catkin_qt/src/class1_ros_qt_demo/include/class1_ros_qt_demo/
gedit main_window.hpp
将第15行的#include <QtGui/QMainWindow>中的QtGui改为QtWidgets
#include <QtWidgets/QMainWindow>
6)编译
cd ~/catkin_qt
catkin_make
三、测试
1.打开一个新终端
2.设置环境变量
source ~/catkin_qt/devel/setup.bash
3.打开Qt项目
rosrun class1_ros_qt_demo class1_ros_qt_demo
通过 ifconfig查看主机ip
sudo apt install net-tools #如果没有安装ifconfig
ifconfig
由上图可知,输入ip:http://127.0.0.1:11311/
注:“http://xxx.x.x.x:11311/”是固定格式
27.0.0.1是本机IP地址
4.新建一个终端打开ROS主节点:
roscore