【ubuntu】如何使用qt creator创建一个ros ui界面

38 篇文章 0 订阅
6 篇文章 0 订阅

背景:

qt creator(版本5.10.1) + ubuntu 16

步骤:

(1)安装qt 5.10.1:

https://blog.csdn.net/ipfpm/article/details/80698659

(2)配置qt creator 设置快捷方式:这一步将要修改Qt Creator快捷方式,使从快捷方式启动Qt Creator的同时加载ROS环境变量。

这条命令将打开DigiaQtOpenSource-qtcreator.desktop快捷方式文件,可以看到文件内容如下:

[Desktop Entry]
Type=Application
Exec=/home/ubu/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 即改为 Exec=bash -i -c /home/ubu/Qt5.8.0/Tools/QtCreator/bin/qtcreator ,保存并退出。

  • 添加 bash -i -c 是为了在通过快捷方式启动Qt Creator的同时加载ROS环境变量

  • 如果打开的文件是空,则表示没有找到DigiaQtOpenSource-qtcreator.desktop文件

  • 可能是安装路径不在本地用户目录下,或者版本不同导致的文件名不一致。

  • 可以在 ~/.local/share/applications/ 和 /usr/share/applications/ 两个路径下用 ls qt 命令找找看。

  • 如果没有上述快捷方式文件,自己新建一个,只要文件内容类似上面的类容,路径正确即可。

  • 快捷方式可以放在 ~/.local/share/applications/ 和 /usr/share/applications/ 两个位置。

  • 当然也可以放在任意其他位置,功能跟放在上面两个位置一样,但左边的任务栏不会正确显示图标。

(3)安装配置ros:

https://blog.csdn.net/ipfpm/article/details/83504391

(4)命令行创建ros工程:

mkdir -p ~/ros_qt_workspace/src
cd ~/ros_qt_workspace/
catkin_make
//这是来自ros官网的最基础操作,此时即将会拥有一个空的ros程序包,但里面还没有创建任何程序

(5)在上述空的工程中,创建一个ros程序:

cd src
catkin_creat_pkg qt_app roscpp std_msgs 

 (5)此时并没有任何cpp文件生成,需要自己添加一个包含main函数的cpp文件 
新建一个包含main函数的极其简单的cpp文件,我们这里取名为qt_app_node.cpp,放在了src目录下,还自己写了一个头文件qt_app_node.h,放在了include/qt_app目录下

//这不是最终的文件,只是一个空工程模板
#include <qt_app_node.h>


int main(int argc, char *argv[])
{

    return 0
}

(6)使用Qtcreator添加窗口类文件。(添加界面)

跟随向导一路下来,将会在工程目录下src文件夹中多出三个文件mainwindow.cpp、mainwindow.h和mainwindow.ui,前两个文件定义了窗口类,后一个ui文件描述了窗口样式。

(7)此时,这些新创建的文件和原本的ros工程还没建立任何关系,只是目录下多出了几个文件而已,并不参与真正的编译,下面要修改cmakelist文件,让这些窗口类文件参与编译。

重点内容:修改cmakelist.txt文件 
下面是一份完整的cmakelist文件,里面配置了与Qt相关的内容

cmake_minimum_required(VERSION 2.8.3)
project(qt_app)

## Compile as C++11, supported in ROS Kinetic and newer
add_compile_options(-std=c++11)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)

find_package(Qt5  REQUIRED COMPONENTS  Widgets  )
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(SOURCES
  src/qt_app_node.cpp
  src/mainwindow.cpp
)

set(FORMS
  src/mainwindow.ui
)

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES qt_app
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)


include_directories(
  include/qt_app

  ${catkin_INCLUDE_DIRS}
)

add_executable(${PROJECT_NAME}_node ${SOURCES} ${FORMS} )

target_link_libraries(${PROJECT_NAME}_node
   ${catkin_LIBRARIES}
)

target_link_libraries(${PROJECT_NAME}_node  Qt5::Widgets )
find_package(Qt5  REQUIRED COMPONENTS  Widgets  )
这是找到qt5中的widgets组件的关键步骤,使程序编译时能够找到qt5-widgets相关头文件和库函数。




set(SOURCES
  src/qt_app_node.cpp
  src/mainwindow.cpp

set(FORMS
  src/mainwindow.ui
指明需要参与编译的cpp及ui文件,分别给它们起个变量名叫SOURCES和FORMS,后续会用到。


add_executable(${PROJECT_NAME}_node ${SOURCES} ${FORMS} )
这是生成可执行文件,此时用到了SOURCES和FORMS所指明的cpp和ui文件。


target_link_libraries(${PROJECT_NAME}_node  Qt5::Widgets )
在链接环节,告诉目标文件需要qt5的widgets组件作为动态链接库。

 

 (8)此时,窗口类文件参与了编译,但是还并没有任何窗口被创建,因为窗口类在main函数里还没有任何实体对象。 
下面修改qt_app_node.cpp文件,创建一个空窗口。

#include <qt_app_node.h>
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

(9)此时,编译程序,执行生成的可执行文件 qt_app__node,将会打开一个空窗口。

catkin_make
source devel/setup.bash
rosrun qt_app qt_app

使用qt5创建基本窗口的过程已经完成,剩下的是自己添加ros相关代码,并具体绘制窗口控件,这与普通的ros程序和qt程序是一模一样。 

(10)除了使用roscamake的命令行编译运行程序以外,还可以使用qt creator打开运行该ros文件,使用qt打开src下面的makelist一般即可。详细见:

https://blog.csdn.net/ipfpm/article/details/88571925

(注意:

(1)如果不想使用ui文件,只用qt的类实现布局等的话,等按照步骤全部完成后,将有关ui的文件以及设置都去掉即可,也可显示窗口

(2)如果想要在qt中继续使用别的窗口类文件,则需要在camakelist文件中加入相关的qt5库(等待验证)

参考:

https://blog.csdn.net/lingchen2348/article/details/82344924

https://blog.csdn.net/qq_16775293/article/details/79101134

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤在QT Creator中创建UI界面: 1. 打开QT Creator,点击"新建项目"。 2. 在项目向导中选择"Qt Widgets应用",点击"选择"。 3. 输入项目名称和保存路径,点击"下一步"。 4. 在"类信息"页面,选择一个窗口类或对话框类作为你的界面的基类,点击"下一步"。 5. 在"设计窗口"页面,选择你要创建的界面类型,比如主窗口、对话框等,点击"下一步"。 6. 在"类名和头文件"页面,输入类名和头文件名称,点击"下一步"。 7. 在"源文件"页面,选择是否生成源文件和将其添加到版本控制中,点击"下一步"。 8. 在"形式与槽函数"页面,选择是否生成形式和槽函数,点击"下一步"。 9. 在"项目配置"页面,选择编译工具链和目标平台,点击"下一步"。 10. 在"总结"页面,确认你的设置,点击"完成"。 11. QT Creator将为你生成一个基本的UI界面文件(.ui文件)和相应的源文件和头文件。 12. 双击.ui文件以打开Qt Designer界面编辑器,在这里你可以设计和布局你的界面。 13. 使用Qt Designer提供的工具和控件将界面设计成你想要的样子。你可以添加按钮、标签、文本框、列表框等控件,并设置它们的属性和布局。 14. 在Qt Designer中,你还可以使用布局管理器来调整控件的位置和大小,以适应不同的窗口大小。 15. 当你完成了界面设计后,保存.ui文件并关闭Qt Designer。 16. 回到QT Creator,它会自动将.ui文件编译成相应的代码,并将代码与源文件和头文件关联起来。 17. 在源文件中,你可以使用生成的代码来访问和操作你的界面控件,以及定义槽函数来处理用户交互。 这样,你就成功地在QT Creator中创建了一个UI界面。你可以根据需要进一步扩展和定制界面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值