qt5.3.2在ros(机器人操作系统)中的使用:qmake与cmake
(1) http://wiki.ros.org/qt_ros?distro=indigo(2) http://answers.ros.org/question/63445/gui-catkin-qt5-cmake/
组织架构:
robot: src(package) + include(package) + resources (package) + launch(package) + ui(package) + robot_gui.pro CmakeList.txt + package.xml
src: robot_gui_node.cpp + robot_navigationinterface.cpp
include: robot_navigationinterface.h
ui: navigationInterface.ui
launch: robot_gui.launch
cmake例子:
cmake_minimum_required(VERSION 2.8.9)
project(robot_gui)
find_package(catkin REQUIRED COMPONENTS
roscpp
roslib
nav_msgs
)
include_directories(include ${catkin_INCLUDE_DIRS})
link_directories(${catkin_LIBRARY_DIRS})
#########################################
#
# get_target_property(QtCore_location Qt5::Core LOCATION)
SET(SYSNAME ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_PROCESSOR})
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5Widgets)# REQUIRED)
add_definitions(${Qt5Widgets_DEFINITIONS})
set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
catkin_package(
DEPENDS
QtCore
QtGui
QtUiTools
CATKIN_DEPENDS
roscpp
roslib
nav_msgs
INCLUDE_DIRS include
LIBRARIES
)
#set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} -I/home/wsh/Qt5.3.2/5.3 /gcc/include -L/home/wsh/Qt5.3.2/5.3/gcc_64/lib -DQT5")
SET(QT_FORMS ui/navigationInterface.ui )
SET(QT_RESOURCES resources/resources.qrc)
QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT5_ADD_RESOURCES(QT_RESOURCES_RCC ${QT_RESOURCES})
QT_WRAP_CPP(robot_gui_node SAMPLE_MOC_SRCS include/robot_navigationinterface.h)
#CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/yaner.sh" "${CMAKE_CURRENT_BINARY_DIR}/yaner" COPYONLY)
add_executable(robot_gui_node
src/robot_gui_node.cpp
${QT_FORMS_HPP} ${SAMPLE_MOC_SRCS} ${QT_RESOURCES_RCC}
)
#add_dependencies(robot_gui_node robot_msgs_gencpp) # Wait for std messages to build
target_link_libraries(robot_gui_node
${catkin_LIBRARIES}
${Qt5Widgets_LIBRARIES}
)
qt5_use_modules(robot_gui_node Widgets Multimedia ) #使用到Multimedia插件
# Install launch files
install(DIRECTORY launch resources
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
# Install excecutables
install(TARGETS robot_gui_node
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
###############################################
qmake例子:
#-------------------------------------------------
#
# Project created by QtCreator 2015-01-02T09:22:54
#
#-------------------------------------------------
QT += core gui
QT += multimedia
QT += multimediawidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = robot_gui_node
TEMPLATE = app
UI_HEADERS_DIR = ../bulid
SOURCES += src/robot_gui_node.cpp \
src/robot_navigationinterface.cpp \
HEADERS += include/robot_navigationinterface.h
FORMS += ui/navigationInterface.ui
RESOURCES += resources/resources.qrc
OBJECTS_DIR +=/home/wsh/robot_ws/build #../robot_gui/temp
UI_DIR += $${OBJECTS_DIR}
RCC_DIR += $${OBJECTS_DIR}
MOC_DIR = $${OBJECTS_DIR}
DESTDIR = $${OBJECTS_DIR}
INCLUDEPATH += $$PWD/../../../../../../../opt/ros/indigo/include
DEPENDPATH += $$PWD/../../../../../../../opt/ros/indigo/include
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lcpp_common
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lroslib
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lroscpp
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lpthread
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lroscpp_serialization
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lrostime
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lrosconsole
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lrosconsole_log4cxx
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lrosconsole_backend_interface
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -lxmlrpcpp
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libboost_signals.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libboost_filesystem.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libboost_system.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libboost_thread.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libpthread.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libconsole_bridge.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libboost_date_time.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/liblog4cxx.so
unix:!macx: LIBS += -L$$PWD/../../../../../../../opt/ros/indigo/lib/ -l:/usr/lib/x86_64-linux-gnu/libboost_regex.so
欢迎大家批评,指正,交流!
联系方式:
emai: tongzhuodenilove@163.com