QT_ubuntu下构建包含QT库的工程(使用clion编辑器)


本文完整代码请参考我的资源中qt-clion.zip

1 为clion配置QT工具

File --> Settings -->Tools --> External Tools
添加如下两个工具:(注意路径根据自己qt安装位置会有所不同)
在这里插入图片描述在这里插入图片描述

2 新建一个clion工程

为新建的工程添加如下文件夹
在这里插入图片描述
其中CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 2.8.3)
project(map_ed_qt)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

set(QT_USE_QTOPENGL TRUE)
find_package(OpenCV REQUIRED)
find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)
include_directories( ${OpenCV_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${QT_QTOPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} )
include_directories(${Qt5Widgets_INCLUDE_DIRS} )
link_directories(${OpenCV_LIBRARY_DIRS})


find_package(Qt5Network REQUIRED)

set(QT_INCLUDE_DIRS ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS})
set(QT_LIBRARIES Qt5::Gui Qt5::Widgets Qt5::Network)
add_definitions(${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS})

file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui)
file(GLOB QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resources/*.qrc)
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/map_editor/*.hpp)
###########
## Build ##
###########
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Core REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Sql REQUIRED)
find_package(Qt5PrintSupport REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Qt5XmlPatterns REQUIRED)
find_package(OpenGL REQUIRED )
#
include_directories(include/map_editor ui/)
#

if(NOT OPENGL_FOUND)
    message(ERROR " OPENGL not found!")
endif(NOT OPENGL_FOUND)

QT5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})

file(GLOB_RECURSE QT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)




set(SOURCE_FILES src/ include/map_editor/ )

add_executable(map_ed_qt ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP} ${QT_MOC_HPP})
target_link_libraries(map_ed_qt ${QT_LIBRARIES} ${OpenCV_LIBS} )

set_target_properties(map_ed_qt
        PROPERTIES COMPILE_FLAGS "-fPIC"
        )
qt5_use_modules(map_ed_qt Core Widgets Gui PrintSupport Sql Xml XmlPatterns)
#install(TARGETS map_ed_qt ) # RUNTIME DESTINATION

在ui文件夹下 右键->new->file 新建mainwindow.ui。
右键点击mainwindow.ui 点击QT -> QT CREATOR。
此时自动弹出QT编辑器,如有报错直接忽略即可。
然后点击 新建文件或项目 --> Qt —> Qt设计师界面类 -->choose
在这里插入图片描述选择mainwindow 然后按如下方式命名:(注意路径一定要改为刚才创建的ui文件夹下)
在这里插入图片描述完成后回到clion 编辑器,会发现ui文件夹下多了mainwindow.h和mainwindow.cpp。。
mainwindow.h改名为mainwindow.hpp
然后右击mainwindow.ui,选择qt --> UIC 之后ui文件夹下又会多了一个ui_mainwindow.hpp
将ui下所有头文件放到include/map_editor下,cpp文件放在src文件夹下。
最后在src文件夹下添加main.cpp 用于测试程序

#include <iostream>
#include "mainwindow.hpp"
#include <QApplication>
#include <qtextcodec.h>

#include <iostream>
#include <QDebug>
#include <QFile>
using namespace std;

int main(  int argc, char *argv[] )
{
    cout << "Hello World!" << endl;

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

    return a.exec();
}

3 编译与测试

右击CMakeLists.txt 点击reload
然后即可编译运行这个clion工程
在这里插入图片描述

4 补充

(1)需要改界面时,直接右击mainwindow.ui转到qt编辑器下设计界面,完成后需要重新右击mainwindow.ui选择UIC生成ui_mainwindow.hpp并替换之前的文件
(2)工程创建完成后可以脱离clion进行编译执行,只需在工程目录下创建build文件夹,然后在终端中输入

cd build
cmake ..
make 
./map_ed_qt 

本文完整代码请参考我的资源中qt-clion.zip

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值