環境是 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...