CLion配置Qt开发环境

Clion配置Qt开发环境

配置CMAKE和ToolChain

新建项目,Qt Widgets Executable,配置CMake prefix path,本人环境如下所示。
在这里插入图片描述

配置ToolChain,Settings。

在这里插入图片描述

将Qt的MinGW置顶,表示使用Qt的MinGW编译

运行程序测试。

在这里插入图片描述

配置.ui文件

默认情况下,CMakeLists.txt中,配置了自动处理ui文件和qrc文件。

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

新建文件,Qt UI Class

在这里插入图片描述

此时项目目录如下所示

在这里插入图片描述

运行程序,uic程序会解析ui文件,生成ui_widget.h文件,红色波浪线消失。

在windows中配置.ui文件的默认应用程序为Qt安装目录下Tools下的Qt Designer,在Clion中双击.ui文件,会自动打开Qt Designer,添加一个按钮后保存,修改main函数代码,测试效果。(ui文件变化后需要重新build)。

在这里插入图片描述

配置.qrc文件

新建文件res.qrc,并在CMakeLists.txt中添加。

add_executable(clion_demo main.cpp
        widget.cpp
        widget.h
        widget.ui
        res.qrc)

默认情况下Clion以xml文件方式打开qrc文件,其实qrc文件的编辑比较简单,以xml方式手动编译亦无不可。当然也可以配置Clion以Windows默认应用程序打开qrc文件,然后设置qrc文件以Qt Creator打开即可,关于如何修改JetBrains工具的文件打开方式

默认情况下,qrc文件内容为空,qtcreator读取时会报错,新的qrc文件应有一对空的RCC标签,在File and Code Templates中添加qrc文件的模板。如下图所示。
在这里插入图片描述

编辑完res.qrc并保存,打开Qt Designer,添加资源文件,选择当前目录下的res.qrc,修改按钮图标。

在这里插入图片描述

保存后重新运行程序。
在这里插入图片描述

解决组件样式古老问题

使用Clion跑出来的界面和Qt Creator中不一样,前者还是老式风格,原因在于CLion没有添加qwindowsvistastyle.dll文件,在CMakeLists.txt中加入即可。

if (EXISTS "${QT_INSTALL_PATH}/plugins/styles/qwindowsvistastyle${DEBUG_SUFFIX}.dll")
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E make_directory
            "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/styles/")
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E copy
            "${QT_INSTALL_PATH}/plugins/styles/qwindowsvistastyle${DEBUG_SUFFIX}.dll"
            "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/styles/")
endif ()

解决图片无法显示问题

开发过程中发现同样的代码ico图标在qtcreator中正常显示,Clion中无法显示,编译过程显示UIC、RCC均正常,最后发现是缺少了处理图片的动态库,如下所示。
在这里插入图片描述
cmake中将以上动态库全部复制过来即可。

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E make_directory
        "$<TARGET_FILE_DIR:${PROJECT_NAME}>/imageformats/")

# qgif qico qjpeg qsvg
FILE(GLOB IMAGE_DLLS "${QT_INSTALL_PATH}/plugins/imageformats/*${DEBUG_SUFFIX}.dll")
foreach (IMAGE_DLL ${IMAGE_DLLS})
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E copy
            "${IMAGE_DLL}"
            "$<TARGET_FILE_DIR:${PROJECT_NAME}>/imageformats/")
endforeach (IMAGE_DLL)

CMakeLists.txt一次配置,永久生效

避免每个项目都要额外手动添加两段CMake代码,可以在File and Code Templates中直接修改模板。
在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值