当前位置:   article > 正文

ubuntu20.04 clion实现编写qt项目——含(.ui .qrc/muliterdia之类的)一些解决办法_qfilesystemwatcher::removepaths: list is empty

qfilesystemwatcher::removepaths: list is empty

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
  • 1

这也就是开头说的为什么要选择版本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。

第一点——设置ui文件

ok,重点来了,我们都知道ui文件在qt里可以直接打开完成图形化的设计操作。那么我也看了一下,clion目前好像是没有这种功能的,但是我们可以设置外部打开qt去进行图形化的编辑,不嫌麻烦当然可以这样操作:

File -》settings -》Tools -》Extermal tools -> 点击+号

在这里插入图片描述

$FileName$

$FileDir$
  • 1
  • 2
  • 3

Program 就是你安装的qt的路径,我是通过官网的.run文件下载到我的用户目录下。

按照上面设置完成后。
我们右击.ui的文件,会看到最下面有个qt选项,里面有个Qt creator点击即可通过qt打开进行设置。当然.h和.cpp其实也都能。目的是为了绘制ui所以暂且不论其他。

然后就是.cpp文件会发现有报错看第二点。

第二点——ui设置后没有组件的id信息

默认情况下clion是不知道ui_mainwindow.h的存在。
通俗的说就是我们需要手动将.ui文件编译成.h文件
所以我们还要构建一个uic工具——叫什么无所谓自己能看懂就行

File -》settings -》Tools -》Extermal tools -> 点击+号

在这里插入图片描述

$FileName$ -o ui_$FileNameWithoutExtension$.h

$FileDir$
  • 1
  • 2
  • 3

请注意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.格式"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

前几次接触肯定多少有点不习惯。适应了能接受就无所谓。

  1. 就是利用我们第一点设置的工具,直接打开qt去编辑qrc的文件,这个比较自然。可能打开来打开去对一部分人说比较麻烦。

我们可以再qt自定义一个模板,因为qrc的文件默认就那么几句代码

File->settings->Editor->File and Code Templates 点击+

在这里插入图片描述
这样新建文件的菜单里就会多出一个qrc的了,感觉非常不戳。

这里仔细看,因为.qrc不是clion默认可以创建的文件,所以创建出来的qrc文件不会自动添加到CMakeLists.txt当中
我们需要手动将文件添加至CMakeLists.txt的add_executable括号中

第四点——qrc编译成rcc

顺脚一提的是rcc文件: rcc文件是由qrc文件转化而来,可以将qrc中所有的图片、文档等资源以二进制的形式存储到rcc文件中,程序打包的时候将rcc文件带上即可。

这个可能对后期的朋友有所需要,前期学习还用不到这么多资源文件,对程序本身影响也不是很大。

rcc

第一条就是找到你qt目录下的rcc执行程序的路径即可

-binary $FileName$ -o $FileNameWithoutExtension$.rcc
第二天就是一个编译的过程,附带的参数。其实跟gcc -o很像

$FileDir$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

设置完以后右击文件找到这个自定义的工具即可生成.rcc的文件。

3.6 新增

用到音频资源的时候发现在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
  • 1
  • 2

还没学到qtquick的自然也不需要太注意,当然也可以先从手册上找找

安装结束后
按照上图在CMakeLists中插入的代码也不会报错了,这样我们就可以在其他.cpp文件中引用QSound头文件了。


结尾

虽然能正常运行但是每次程序结束都会:

QFileSystemWatcher::removePaths: list is empty

产生这么一个报错,目前所学的好像都没什么影响,网上好像也搜不到什么关键的。

最后欢迎各位补充不足之处,共同打造美好的开发环境

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/115007
推荐阅读
相关标签
  

闽ICP备14008679号