系列文章目录
文章目录
前言
一、资源地址
二、QtCreator安装
1.通过apt安装
通过apt安装(示例):
sudo apt-get install qtcreator
2.通过安装包安装
添加可执行权限
chmod a+x qt-opensource-linux-x64-xxxx.run
然后再安装包目录下“./”运行即可
一路next
然后注册qt账号即可下一步
勾选gcc编译环境
三.QtCreator的使用
1.运行
方法一:在菜单栏运行
方法二:
找到如下路径运行qtcreator文件或cd到目标路径”./“运行。
2.创建工程
新建工程
选择QT控件应用
命名并选择路径
选择cmake
剩下的步骤一路next即可
四、合并ROS与QT项目
1、创建工作空间与功能包
mkdir ros2_ws
cd ros2_ws
mkdir src
cd src
ros2 pkg create --build-type ament_cmake ros2_qt_demo
2、合并文件夹
将qt工程目录下创建的main.c和mainwindow,移动到rosws目录下qtdemo中的src下
同理再将.h文件挪动到rosws目录下的inlucde文件夹中
新建ui跟resource文件并将qtws的ui文件挪动到rosws的ui文件中。
3、编写cmakelist
cmake_minimum_required(VERSION 3.5)
project(ros2_qt_demo)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(Boost 1.71.0 REQUIRED COMPONENTS thread)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
# uncomment the following section in order to fill in
# further dependencies manually.
# find_package(<dependency> REQUIRED)
file(GLOB PRO_SOURCE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)
file(GLOB PRO_UI_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS ui/*.ui)
file(GLOB PRO_INCLUDE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS include/*.h *.hpp)
file(GLOB PRO_RESOURCE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS resource/*.qrc)
qt5_wrap_ui(QT_UI_HPP ${PRO_UI_DIR})
qt5_wrap_cpp(QT_MOC_HPP ${PRO_INCLUDE_DIR})
qt5_add_resources(QT_RESOUCE_HPP ${PRO_RESOURCE_DIR})
include_directories(
include/
${CMAKE_CURRENT_BINARY_DIR}
)
add_executable(${PROJECT_NAME}
${PRO_SOURCE_DIR}
${PRO_INCLUDE_DIR}
${PRO_UI_DIR}
${QT_MOC_HPP}
${QT_RESOUCE_HPP}
)
ament_target_dependencies(${PROJECT_NAME} rclcpp Boost)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME})
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
# the following line skips the linter which checks for copyrights
# uncomment the line when a copyright and license is not present in all source files
#set(ament_cmake_copyright_FOUND TRUE)
# the following line skips cpplint (only works in a git repo)
# uncomment the line when this package is not in a git repo
#set(ament_cmake_cpplint_FOUND TRUE)
ament_lint_auto_find_test_dependencies()
endif()
ament_package()
4、编译
在工作空间目录下打开终端
mkdir build
cd build
cmake ..
编译完成
根据makefile生成可执行文件
make
运行demo
./ros2_qt_demo
运行后出现窗口
总结
原视频
通过本节课的学习,知道了如何配置qt开发环境,如何将qt与ros的工作空间合并起来,如何改写ros的cmakelist文件。