Ubuntu20.04+ROS Noetic环境下创建Qt GUI包的问题解决问询
ROS Noetic 创建Qt GUI功能包解决方案
方法1:移植旧版qt-create工具(兼容原catkin_create_qt_pkg命令)
Noetic官方虽移除了qt-create、qt-build组件,但可手动安装Melodic版本的对应工具实现原命令复用,操作如下:
- 先安装基础依赖
sudo apt update sudo apt install python3-catkin-pkg python3-empy qt5-default qtbase5-dev
- 获取qt-create源码
到ROS官方qt-create项目仓库选择melodic-devel分支,下载源码包后解压放到ROS工作空间的src目录下 - 编译安装并生效
cd ~/catkin_ws catkin_make install source devel/setup.bash
- 验证可用性,执行无报错即可正常使用原命令创建Qt功能包
catkin_create_qt_pkg --help
方法2:手动配置Qt5编译规则(无需额外安装工具)
如果不想移植旧工具,可直接手动修改普通ROS功能包的配置文件适配Qt5:
- 第一步:创建基础ROS功能包,可根据需求替换依赖项
cd ~/catkin_ws/src catkin_create_pkg 你的功能包名 roscpp std_msgs
- 第二步:修改功能包下的
package.xml,添加Qt5依赖声明
<build_depend>qtbase5-dev</build_depend> <exec_depend>qtbase5-dev</exec_depend>
- 第三步:修改
CMakeLists.txt,添加Qt5编译配置
# 开启Qt5相关编译规则 set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) # 查找Qt5依赖组件 find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui) # 添加头文件路径 include_directories( include ${catkin_INCLUDE_DIRS} ${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ) # 编译节点时链接Qt5库,替换为你自己的源码文件路径 add_executable(${PROJECT_NAME}_node src/main.cpp src/mainwindow.cpp) target_link_libraries(${PROJECT_NAME}_node ${catkin_LIBRARIES} Qt5::Core Qt5::Widgets Qt5::Gui )
- 第四步:将Qt界面源码放到对应目录后,正常执行
catkin_make即可编译运行
内容的提问来源于stack exchange,提问作者aspiringroboticist
相关产品推荐
相关产品推荐

