赞
踩
2021/3/6 multmedia无法引用
2021/2/17 在新建菜单中增加qrc文件格式
2021/2/16 新增资源文件处理方法和rcc的处理
2021/2/7 经过不断整理和尝试在此分享
如文章标题所示此文章内容基于ubuntu20.04系统,windows得绕路。
新版的clion创建项目时已经能选择创建qt console项目或者qt widget项目了。
如果还是初学者怕麻烦个人认为还是先别折腾了。老老实实用qt creator好了。
之所以会想到clion去编辑,主要就是感觉clion的辅助功能不错。
clion的代码提示和一些标记都让人感觉到很舒服,qt creator本身也不错,没有要抬高谁贬低谁,我只是个工具使用人。
首先先根据需求,console就是终端里显示的,widgets就是图形化的窗口,一般用qt还是图形化比较多吧。
其次因为clion是用cmakelist来组织和设置项目。默认情况下我们不做改动。且注意qt版本选择5,6还太新目前并不适用在clion。
创建项目后我们会发现
Could not find a package configuration file provided by “Qt5Widgets”
产生了一个报错,说白了就是因为我的qt是官网下载通过.run文件安装的,可能有些没写进环境导致他不认识。
解决办法最简单就是从仓库安装一个:
也比较推荐这个吧。
sudo apt-get install qtbase5-dev
这也就是开头说的为什么要选择版本5而不是6,因为仓库没有qtbase6这么个玩意。
装完之后没啥别的情况就能正常运行了。
其次就是,clion默认风格就是一个main.cpp,qt创建的项目的功能实现一般都是放在别的文件夹,最后在main文件中show一下,所以对初学者来说还是没有必要去用clion写qt的。
最后值得一提创建项目的流程:
路径随便选,Qt的版本就选5就行了,6目前好像还没弄好。其次c++的版本也随便选择,没啥特殊需求11或者14都行。
然后会发现除了cmakelist和main就没有其他文件了,此时右击左边project的文件,找到Qt UI
可以很方便的创建好头文件和cpp文件和ui文件。
如果不需要的话就单纯创建c++ class即可,只有.h和.cpp,没有ui,同时文件内还需要自己编写基础的代码。所以一般建议直接选Qt UI。
ok,重点来了,我们都知道ui文件在qt里可以直接打开完成图形化的设计操作。那么我也看了一下,clion目前好像是没有这种功能的,但是我们可以设置外部打开qt去进行图形化的编辑,不嫌麻烦当然可以这样操作:
File -》settings -》Tools -》Extermal tools -> 点击+号
$FileName$
$FileDir$
Program 就是你安装的qt的路径,我是通过官网的.run文件下载到我的用户目录下。
按照上面设置完成后。
我们右击.ui的文件,会看到最下面有个qt选项,里面有个Qt creator点击即可通过qt打开进行设置。当然.h和.cpp其实也都能。目的是为了绘制ui所以暂且不论其他。
然后就是.cpp文件会发现有报错看第二点。
默认情况下clion是不知道ui_mainwindow.h的存在。
通俗的说就是我们需要手动将.ui文件编译成.h文件
所以我们还要构建一个uic工具——叫什么无所谓自己能看懂就行
File -》settings -》Tools -》Extermal tools -> 点击+号
$FileName$ -o ui_$FileNameWithoutExtension$.h
$FileDir$
请注意ui文件每次更新后都需要uic一下让头文件及时更新。否则ui里设计的布局无法调用
然后我们找到.ui的文件右击选择uic,会生成一个.h的文件,但是都是小写的,所以还需要自行更改.cpp中的头文件名或者修改.h的文件名。
这样就不会报错也能正常运行了
qrc就好像一个菜单栏目一样去整理图片资源,clion默认以xml的格式打开
但是clion好像没法图形化去编辑.qrc的文件。
所以提供两个方法
1. 要么记个代码框架自己徒手硬来—其实也还好就那么几句
//其实好像还有一条关于版本号的,我想目前大概没啥差别加不加问题不大
<RCC>
<qresource prefix="xxx"> //可以不设置
<file>xxx</file> //一般都会在qrc统计目录下新建一个文件夹用以存放资源
</qresource>
</RCC>
//简单来说,如果prefix不想设置,那么引用资源文件里面的东西就是":xxx.格式"
//如果设置了prefix,比如prefix="/",那么引用的时候就是":/xxx.格式"
//在设置了prefix的前提下,你的资源文件也有一个文件夹,那么格式为":/文件夹名/xxx.格式"
前几次接触肯定多少有点不习惯。适应了能接受就无所谓。
我们可以再qt自定义一个模板,因为qrc的文件默认就那么几句代码
File->settings->Editor->File and Code Templates 点击+
这样新建文件的菜单里就会多出一个qrc的了,感觉非常不戳。
这里仔细看,因为.qrc不是clion默认可以创建的文件,所以创建出来的qrc文件不会自动添加到CMakeLists.txt当中
我们需要手动将文件添加至CMakeLists.txt的add_executable括号中
顺脚一提的是rcc文件: rcc文件是由qrc文件转化而来,可以将qrc中所有的图片、文档等资源以二进制的形式存储到rcc文件中,程序打包的时候将rcc文件带上即可。
这个可能对后期的朋友有所需要,前期学习还用不到这么多资源文件,对程序本身影响也不是很大。
第一条就是找到你qt目录下的rcc执行程序的路径即可
-binary $FileName$ -o $FileNameWithoutExtension$.rcc
第二天就是一个编译的过程,附带的参数。其实跟gcc -o很像
$FileDir$
设置完以后右击文件找到这个自定义的工具即可生成.rcc的文件。
用到音频资源的时候发现在CMakeLists里面的
格式就抄前面的就行了首字母大写,下面那句前面加上Qt5::
然后。。当然就报错了
在/usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28(find_package)中的CMake错误:
找不到“ Qt5multimedia”提供的程序包配置文件
具有以下任何名称:
Qt5multimediaConfig.cmake
qt5multimedia-config.cmake
在搜索了一番自己通过.run文件安装的qt版本中的lib文件夹下是有这么些个文件的。
然后猛地才注意到clion读取的qt5版本是从apt安装的。所以其他的组件自然也需要通过apt安装
sudo apt-get install qtmultimedia5-dev //安装QtMultimedia
sudo apt-get install qtdeclarative5-dev //安装QtQuick
还没学到qtquick的自然也不需要太注意,当然也可以先从手册上找找
安装结束后
按照上图在CMakeLists中插入的代码也不会报错了,这样我们就可以在其他.cpp文件中引用QSound头文件了。
虽然能正常运行但是每次程序结束都会:
QFileSystemWatcher::removePaths: list is empty
产生这么一个报错,目前所学的好像都没什么影响,网上好像也搜不到什么关键的。
最后欢迎各位补充不足之处,共同打造美好的开发环境
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。