Qt載入ROS環境 進行介面設計

2021-08-17 03:36:38 字數 2742 閱讀 7286

環境是 ubuntu14.04 + qt 5.8 + ros(indigo)

1.配置qt的啟動檔案

我的配置檔案在這個路徑

開啟後的配置檔案

[desktop entry]

exec=bash -i -c /home/asus/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;

注意這行

exec=bash -i -c /home/asus/qt5.8.0/tools/qtcreator/bin/qtcreator
其中「bash -i -c」是自己加的,後面是相應可執行路徑

2.使用現成的qt-gui模板

直接用catkin_create_qt_pkg命令建立帶qt介面的ros package

先安裝,執行如下命令:

sudo apt-get install ros-indigo-qt-ros
使用catkin_create_qt_pkg命令建立乙個名為test_for_qt的package

cd catkin_for_qt/src/

catkin_create_qt_pkg test_for_qt

如下圖

得到的package包含

我們可以使用catkin_make進行編譯,得到的可執行檔案在/home/asus/catkin_for_qtgui/devel/lib/路徑下,執行roscore,將其托到命令列後即可執行,如圖

因為我不是第一次執行,右邊的部分已經被隱藏,

現在最大的問題是  我們qt並沒有ros相關的外掛程式(現在有的外掛程式裝不了的,不知道為啥),所以剛剛建立的test_for_qt 包 ,我並不能匯入qt進行編譯,而且也沒有./pro檔案,

下面讓qt載入ros相關的庫,然後將這個package「移植」進去,其實步驟就一步

3.再配置qt

先建立乙個新的mai nwindow

然後將上一步得到test_for_qt包裡的四個檔案拷貝到新建的mainwindow工作目錄下,接著以add existing di r ectory 的方式將四個資料夾匯入,並且將原來的mainwindow檔案移除,如圖

接下來開啟.pro檔案,將下面檔案新增進去

includepath += /opt/ros/jade/include   

dependpath += /opt/ros/jade/include

includepath += /home/username/bzrobot_ws/devel/include

libs += -l:/usr/lib/x86_64-linux-gnu/libboost_thread.so

libs += -l:/usr/lib/x86_64-linux-gnu/libpthread.so

libs += -l/opt/ros/jade/lib -lroscpp -lrospack -lpthread -lrosconsole -lrosconsole_log4cxx -lrosconsole_backend_inte***ce -lxmlrpcpp -lroscpp_serialization -lrostime -lcpp_common -lroslib -ltf -lyaml-cpp -lkdl_conversions

libs += -l:/opt/ros/jade/lib/libroslib.so

如圖

就可以正常編譯了

下面是我修改示例的截圖

以上參照了如下文章,部分如下:

QT常用介面設計元件 SpinBox

spinbox用於整數的顯示與輸入,一般顯示為十進位制,也可以顯示二進位制和十六進製制的數,而且可以在顯示框增加字首和字尾 qdoublespinbox用於浮點數的顯示和輸入,可以設定顯示小數字數,也可以設定顯示的字首和字尾 它們都是qabstractspinbox的子類,具有大多數相同的屬性,只是...

Qt 檔案說明與介面設計

helloworld.pro 該檔案是專案檔案,其中包含了專案相關資訊 helloworld.pro.user 該檔案中包含了與使用者有關的專案資訊 mainwindow.h 該檔案是新建的hellowrold類的標頭檔案 mainwindow.cpp 該檔案是新建的hellowrold類的原始檔 ...

QT常用實用的介面設計技巧

qstring strqss qprogressbar qprogressbar horizontal qprogressbar chunk horizontal 等待還原的時候使用。三 qss樣式 1.qcombobox combobox setstylesheet qcombobox qcomb...