利用Qt Creator 如何在ROS 项目中从一个界面调用另一个界面?

首先介绍我使用的是Qt Creator 4.4.1,Based on Qt 5.9.1 (GCC 4.9.4, 64 bit),为了方便在qt中开发ROS界面,安装了ros_qtc_plugin 插件(可以参考文章:http://blog.csdn.net/zhangrelay/article/details/52068657有什么问题直接去Levi-Armstrong的github上找,目前网上一些安装教程可能更新不及时,最终安装完的选项可能不完全一样),可以直接新建带界面的ros项目,方便调试。

1.在Qt Creator中新建一个ros的workspace


2.在终端进入ros项目的src目录下,利用命令

catkin_create_qt_pkg test2 roscpp  创建名为test2 的包含Qt界面的ros package,文件目录如下所示:


在ui文件下可以看到ui文件(右边那五个button是自己添加的,默认界面中没有),先添加一个Manual Dialog Control 按钮,用它调出另一个界面


3.在test2 package src目录下新建Qt Designer Form Class界面文件(名为manualdialog),选择dialog(mainwindow也一样)


新建完成后会产生三个文件,manualdialog.h manualdialog.cpp manualdialog.ui,将他们分别移动到对应的文件夹中,然后在manualdialog.cpp文件中更改头文件目录

#include "../include/test2/manualdialog.h"
4.最重要的问题是要在CmakeLists文件中做更改

file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/test2/*.hpp *.h)
//一定要加上*.h 不然找不到manualdilog.h头文件
//如果编译找不到源文件再试试下面这句话,一般不需要
//set(QT_SOURCES src/main.cpp src/qnode.cpp src/main_window.cpp src/manualdialog.cpp )
//在源文件中添加manualdilog.cpp
5.接下来就和非ROS项目中调用一个界面步骤一样了,在manualdialog.ui文件中画出你需要的控件,然后在主界面的Manual Dialog Control上连接信号与槽调用manualdialog.ui界面,如下图所示


第四步是关键,不然老是会出现类没定义,找不到*.o文件之类的错误,当时我就在这上面耗费了好多时间。



  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值