Qt 6之二:项目的结构、资源文件的使用(修改)

Qt 6之二:项目的结构、资源文件的使用

上一篇Qt 6的 简介、安装与简单使用https://blog.csdn.net/cnds123/article/details/130730203,本文介绍Qt 6的项目的结构、资源文件的使用与发布。

基础

这一部分,初学时不明白是何意思不要纠结,先大体了解即可,在学习实践一段时间后,回头看(回顾)时,就能更好的理解了。

在Qt6中, qmake、CMake 和 Qbs 构建系统的特点

qmake

qmake 使用起来非常简单,并且对于大多数项目来说,足以满足需求。如果你的项目仅需要基本的构建功能,例如编译和链接源文件、管理依赖库和创建安装程序,则使用 qmake 是一个不错的选择。

CMake

CMake 是一种跨平台的构建工具,它可以生成多种不同的项目文件类型,例如 Makefile、Visual Studio Solution 等。CMake 使用起来相比 qmake 要复杂一些,但是它更灵活,并且在处理更大型的项目时会更有优势。如果你打算开发较大规模的应用或库,使用 CMake 并将其与其他构建工具集成可能是一个更好的选择。这个是新版Qt Creator默认,官方推荐

Qbs

Qbs 是 Qt 的下一代构建工具,它基于 QML 和 JavaScript,并提供了一种现代、模块化和易于使用的构建语言。Qbs 相比 qmake 和 CMake,使用起来需要一些学习成本,但是它的支持和集成良好,并且它的编译速度更快。如果你希望与 Qt Creator 集成更好,同时在构建速度和项目规模方面获得更大的优势,则使用 Qbs 可能是一个更好的选择。

Qt创建资源文件的方式有以下两种

1.使用Qt Creator创建资源文件

在Qt Creator中右键单击项目文件夹或文件夹,选择“Add New”->“Qt”->“Qt Resource File”,在弹出的对话框中设置资源文件的名称和保存位置。然后在资源文件编辑器中添加你需要的资源文件,例如图片、音频等。

2.手动创建.qrc文件

可以用向导(右键单击项目中的文件夹,选择"Add New...",在弹出的对话框中,选择"Qt",然后选择"Qt Designer Form"。)或手工创建一个.qrc文件,然后在文件中添加资源文件的路径及其相关信息。你可以在你的项目的目录中用文本编辑器手工创建一个资源文件。这里是一个.qrc文件的示例内容:
<RCC>
    <qresource prefix="/images">
        <file>icons/icon1.png</file>
        <file>icons/icon2.png</file>
    </qresource>
    <qresource prefix="/sounds">
        <file>sounds/alert.wav</file>
    </qresource>
</RCC>
在这个例子中,我们定义了两个资源前缀:/images 和 /sounds。在/images下,我们列出了两个图标文件;在/sounds下,我们列出了一个声音文件。

这两种方式都可以用于在Qt6中创建资源文件。使用Qt Creator可以更快捷方便地创建.qrc文件,而手动创建.qrc文件则可以更加精细地控制资源文件的添加和管理。

不同的项目构建系统(qmake、CMake和Qbs)创建的项目资源文件的使用概述

1.qmake项目

在Qt Creator中右键单击项目文件夹或文件夹,选择“Add New”->“Qt”->“Qt Resource File”,在弹出的对话框中设置资源文件的名称和保存位置。然后在资源文件编辑器中添加你需要的资源文件,例如图片、音频等。

添加资源文件后,会在.pro项目文件中自动添加了以下代码:

RESOURCES += resources.qrc

其中,resources.qrc为你刚才创建的资源文件名称。

2.CMake项目:

在CMake项目中创建资源文件的方法与在qmake项目中类似。例如,可以在项目的目录中创建一个名为res.qrc的文件,然后需要你手工在CMakeLists.txt中手工添加一些代码,后面例子将介绍如何具体做。

3.Qbs项目:

新手一般很少用,就不介绍了。

总之,使用Qt Creator创建资源文件可以方便地管理和使用资源文件。对于不同的项目构建工具,具体操作略有不同,并需要遵循相关的规范和语法。

这里有一点需要澄清的是,一旦您创建了配置文件(.qrc、CMakeLists.txt或.qbs文件)并设置了包含资源的规则,当您添加新的资源文件到已经指定的目录或者模式下时,您可能不需要每次都手动更新配置文件。例如:

  • 在qmake中,如果您在.qrc文件中指定了一个目录,那么该目录下的所有资源文件都将包含在内,无需每次添加新文件时都修改.qrc文件。
  • 在CMake中,您可以编写脚本来自动将某个目录下的所有文件作为资源,或者使用通配符来指定资源文件,这样在添加新文件时就不需要修改CMakeLists.txt。
  • 在Qbs中,同样,您可以指定一个目录,使得该目录下的所有文件都被视为资源。

但是,如果您更改了资源文件的结构,如添加新的目录或改变文件的组织方式,您仍然需要更新这些配置文件以反映这些变化。此外,如果您希望资源在构建系统中有特殊的处理,如指定不同的资源前缀或者为不同的构建目标包含不同的资源集,您也需要手动编辑这些配置文件。

用qmake和CMake构建项目示例

实现简单例子:输入半径值,单击“计算”按钮后,显示圆面积值

一)qmake构建项目

要求:输入半径值,单击“计算”按钮后,显示圆面积值

运行Qt Creator,在欢迎界面左侧点“Projects”按钮

Qt程序一般是由头文件、cpp源文件和.ui界面文件组成的,前两者就是存放代码的文件,ui文件则是用于可视化界面设计的,比如拖放控件等。

相应的文件已经自动加载到项目文件列表中,如下图:

QT Creator向导创建项目后,会自动生成一些文件,参见上图。

现在,可以进行界面设计

点击Forms 部分展开,双击其中的.ui文件,这里是mainwindow.ui

拖曳控件容器栏的滑动条,在Display Widgets容器栏中找到Label标签控件,拖曳三个此控件到中间的窗体中;同样,在Input Widgets容器栏中找到Line Edit编辑框控件,拖曳此控件到中间的窗体中,用于输入半径值;在Buttons容器栏中找到Push Button按钮控件,拖曳此控件到中间的窗体中,用于提交响应单击事件。

然后需要对各控件属性进行修改,窗体中的控件在右侧出现相应的属性,按下表修改

CLass

text

objectName

frameShape

frameShadow

QLabel

半径

radiusLabel

QLabel

面积

areaLabel_1

QLabel

areaLabel_2

Panel

Sunken

QLineEdit

radiusLineEdit

QPishButton

计算

counBtn

修改后的情况:

现在,编写计算圆面积功能代码

在“Line Edit”编辑框内输入半径值,然后单击“计算”按钮,则在areaLabel_2中显示对应的圆面积。

操作步骤如下。

在“计算”按钮上按鼠标右键,在弹出的下拉菜单中选择“Go to slot...”命令,在“Go to slot”对话框中选择QAbstractButton的“clicked()”信号,单击“OK”按钮,如图所示:

进入MainWindow.cpp文件中按钮单击事件的槽函数on_countBtn_clicked(),在此函数中添加如下代码:

void MainWindow:: on_countBtn_clicked()
{
    bool ok;
    QString tempStr;
    QString valueStr = ui->radiusLineEdit->text();
    int valueInt = valueStr.toInt(&ok);
    double area = valueInt * valueInt * PI;				//计算圆面积
    ui->areaLabel_2->setText(tempStr.setNum(area));
}

在MainWindow.cpp文件开始处添加以下语句:

const static double PI = 3.1416;

参见下图:

现在可以编译运行程序了

在“Line Edit”文本框内输入半径值,单击“计算”按钮后,显示圆面积值:

qmake构建项目的结构

现在看看上面这个小项目的结构,参见下图:

 ☆项目文件 /构建系统的配置文件:

Qmake的是.pro文件(应用程序名称.pro)

CMake的是CMakeLists.txt文件

Qbs的是. qbs文件(应用程序名称. qbs)

它们都是一个文本文件,包含了整个项目的配置信息,包括所需要的库文件和头文件等。

☆源代码文件 (.cpp, .h):这些文件包含了程序的实现代码和头文件。在QT Creator中,这些文件可以通过项目目录中的“Sources”和“Headers”文件夹进行组织。

main.cpp文件是整个应用程序的入口点。它包含main函数,该函数是应用程序启动时首先执行的函数。在main函数中,你会创建一个QApplication对象,并且通常也会创建你的主窗口对象,然后将控制权交给Qt的事件循环。

mainwindow.cpp文件包含了主窗口类的实现。这里你会定义主窗口类的构造函数、析构函数以及其他成员函数的实现。通常,你会在这个文件中实现主窗口的初始化、事件处理逻辑等。

在Qt应用程序中,mainwindow.h文件是用来定义主窗口类的接口的,它包含了类的声明和接口定义。你可以在这个文件中定义主窗口类的声明一些Qt的类的声明,比如QMainWindow或者QWidget,以及包括类的成员变量、成员函数的声明、信号和槽等。它通常会与mainwindow.cpp文件配合使用,mainwindow.cpp包含了主窗口类的实现,而mainwindow.h包含了主窗口类的声明。

☆界面设计文件 (.ui):这些文件用来描述应用程序的用户界面。在QT Creator中,这些文件可以通过项目目录中的“Forms”文件夹进行组织。

☆资源文件 (.qrc):如果已建立这话,因为还未建立故未出现,后面将建立。这些文件用来管理应用程序中的图像、音频、文本和其他数据文件。在QT Creator中,这些文件可以通过项目目录中的“Resources”文件夹进行组织。

☆编译输出文件 (.exe, .dll, .so):这些文件是编译器生成的最终可执行文件或库文件。在QT Creator中,这些文件可以通过项目(Projects)目录中的“Builds”文件夹进行组织。

资源文件的使用

Qt资源系统(Qt Resource System)是一种将图片、数据存储在二进制文件中的一套系统。

在GUI程序中,不可避免地将会使用各类资源,例如图片、音视频资源等,有这些资源,我们可以将普通的按钮设置成带图片的,一些标签也可以用图片来显示,还可以播放动图等。

为了方便的使用这些资源,我们需要使用Qt中的资源文件(.qrc文件)。

Qt使用资源文件(.qrc文件)可以将应用程序所需要的资源文件(如图片、字体、音频等)打包成一个二进制文件,以便于应用程序访问,避免了资源文件和应用程序分离导致的路径问题。这种方法的好处是,将资源文件打包到应用程序中可以使应用程序更加独立和可移植。无论您将应用程序复制到何处,都可以确保它具有所需的资源,而无需再次下载或复制它们。请注意,如果您需要更新应用程序中的资源文件(例如添加新的图像或更改现有的图像),则需要重新编译应用程序以将新的资源文件包括在内。

使用Qt Creator创建资源文件(.qrc文件),可以按照以下步骤进行:

在Qt Creator中创建一个新的Qt项目或打开一个已有的Qt项目。

在项目树中右键单击项目(Projects)名称,选择“添加新文件(Add New)”。

在“添加新文件(Add New)”对话框中,选择“Qt” > “Qt资源文件(Qt Resoorce File)”>“选择(Change)”按钮。

在“Qt资源文件(Qt Resoorce File)”对话框中的“Location”页,输入资源文件的名称和路径,单击“下一步”;

然后在“汇总页(Summary)”对话框中添加资源文件。单击“完成(Finish)”按钮,完成资源文件的添加。

参见下图:

添加资源文件后,才可以进行下面的操作。

为程序窗口建立图标。Qt程序窗口图标支持多种图片格式,例如ICO、PNG、SVG等。

在Qt Creator中,打开.qrc文件添加资源文件的步骤

在Qt Creator中打开您的项目。

在左侧的“Projects(项目)”面板中选择您的项目文件夹并单击展开。

找到.qrc文件并右键单击它。

在弹出菜单中选择“Open in Editor(在编辑器中打开)”。

现在,就可以用资源视图中的"Add Prefix"和"Add Files",并按照提示添加相应的文件或文件夹。

先点击资源视图中的Add Prefix按钮,添加前缀名可以修改(前缀名字主要是为了区分这些资源的作用,例如背景音乐资源文件,或者专门给按钮用的图片,或者专门用来做头像的图片等)。我这里建立一个 / Res

然后点击Add Files按钮,添加需要的资源文件。为了方便管理避免误操作和后续的修改,建议你在项目目录中建立子文件夹,将资源文件先手工复制进去。【否则出现如下提示

添加窗体图标(icon)、给按钮用的图标(icon)和给窗体背景图片有多种办法。

下面是设置窗体图标办法

我这里是(其中项目目录ch01,资源文件目录ResFolder)

用资源视图中的"Add Prefix"和"Add Files",先将作为窗体图片的Qt.png图片文件添加到.qrc文件中,操作步骤:Qt Creator中,在左侧的“Projects(项目)”面板中,选择您的项目文件夹单击展开,找到.qrc文件并右键单击它,在弹出菜单中选择“Open in Editor (在编辑器中打开)”,这样,您就可以将资源文件——这里是Qt.png图片文件添加到.qrc文件中了。参见下图:

再按如下办法之一进行:

法1、在Qt Designer中直接设置:在窗体属性编辑器中,在"windowIcon"属性栏中选择图标文件。

法2、也可以使用代码设置

提示:在应用程序中使用资源文件,可以使用":/"前缀来表示该资源文件,如:QPixmap(":/images/logo.png"),其中":/"表示根目录,后面的"images/logo.png"则表示在资源文件中的路径。

我这里将图标文件添加到应用程序源文件中,在main.cpp中添加以下代码:

QGuiApplication::setWindowIcon(QIcon(":/Res/ResFolder/Qt.png"));//添加窗体图标

参见下图:

用上面两种办法之一即可。

现在运行看看,在Qt Creator中,可以通过“build”菜单中的【build Project “项目名”Ctrl+B】选项来编译程序,然后通过【run Ctrl+B】选项来运行程序。

运行后可见图标换了:

设置窗体背景图片

用资源视图中的"Add Prefix"和"Add Files",先将作为窗体背景图片的BGImage.jpg图片文件添加到.qrc文件中,

参见下图:

再按如下办法进行:

在Qt Designer中直接设置:在窗体属性编辑器中,在"styleSheet"属性栏中指定背景图片路径。参见下图:

注意,上图中需要手工加入background-image: 

也可以使用代码设置窗体背景图片,在此就不介绍了。

现在运行,窗体背景换了:

特别说明:将图像文件添加到.qrc文件中,则该文件会被打包进应用程序二进制文件中。这意味着,当运行应用程序时,而无需在磁盘上查找它。Qt6可以直接从应用程序二进制文件中读取图像数据,然后使用它来显示图像或进行其他操作。无论您将应用程序复制到何处,都可以确保它具有所需的资源,而无需再次下载或复制它们。

请注意,如果您需要更新应用程序中的资源文件(例如添加新的图像或更改现有的图像),则需要重新编译应用程序【在Qt Creator中,可以通过单击“Build Project”按钮或使用快捷键“Ctrl+B”来执行此操作】以将新的资源文件包括在内。

Qt 资源系统更多情况可参见https://zhuanlan.zhihu.com/p/60457016

上面例子用QMake构建的,下面改用CMake构建实现。现在,介绍在 Qt Creator中使用CMake作为构建系统时项目配置的基本过程、用法。

二)CMake构建项目

CMake构建项目,不用向导添加和使用资源文件 和使用用向导添加和使用资源文件,如窗体图标、背景图片、音频的具体做法。

 准备两张图片,其中Qt.png 要作为窗体图标,BGImage.jpg作为窗体背景图片,我这里是:

★CMake 构建项目不用向导添加和使用资源文件的情况

为此,先用CMake构建项目构建一个项目ch02。

在Qt Creator中使用CMake构建项目的步骤:

1、运行Qt Creator,在欢迎界面左侧点“Projects”按钮

或者选择 “File” -> “New File or Project…”。

在打开的向导中,选择 “Application” 下的 “Qt Widgets Application”,取决于你想创建的应用类型。

2、配置项目:

输入项目的名称。我这里ch02

选择项目的保存位置。

点击 “Next”。

3、Build system 采用CMake

点击 “Next”。

4、在 "Class Information" 页面,输入你的主窗口类的名称,按默认即可,然后点击 "Next"。

其中,1)Generate form 复选框

勾选Qt Creator 会自动创建窗口UI 文件(.ui文件)。 默认勾选。

不勾选,这样创建的项目里就没有窗口UI 文件(.ui文件)。

点击 “Next”。

2) Base class 下拉列表框中选择一个窗口基类,有3 种窗口基类可供选择:

*  QMainWindow 是主窗口类,主窗口类具有菜单栏、工具栏和状态栏。

    *  QWidget 是所有界面组件类的基类,QWidget 可以作为独立的窗口,就是一个空白的窗口。

    *  QDialog 是对话框类,窗口具有对话框的显示效果,例如没有最大化按钮。

5、 "Translation File" 页面

如果您计划通过Qt语言学家工具为项目的用户界面提供翻译,请在此处选择语言。将为您生成相应的翻译(.ts)文件。

这个示例不需要设计多语言界面,所以使用默认的None即可。

点击 “Next”。

点击 “Next”。

点击 “Finish”。

QT Creator向导创建项目后,会自动生成一些文件。

其中,CMakeLists.txt文件是CMake构建系统的核心配置文件,它提供了一种声明性的方式来描述项目的构建过程和依赖关系。通过编辑CMakeLists.txt文件,你可以定制项目的构建规则,添加依赖项,并控制构建系统的行为。它被放置在 Qt项目源程序文件的根目录下,双击它可以查看编辑其内容。

现在,可以进行界面设计

双击SourceFiles节点中的.ui文件,这里是mainwindow.ui

拖曳控件容器栏的滑动条,在Display Widgets容器栏中找到Label标签控件,拖曳三个此控件到中间的窗体中;同样,在Input Widgets容器栏中找到Line Edit编辑框控件,拖曳此控件到中间的窗体中,用于输入半径值;在Buttons容器栏中找到Push Button按钮控件,拖曳此控件到中间的窗体中,用于提交响应单击事件。

然后需要对各控件属性进行修改,窗体中的控件在右侧出现相应的属性,按下表修改

CLass

text

objectName

frameShape

frameShadow

QLabel

半径

QLabel

面积

QLabel

areaLabel_2

Panel

Sunken

QLineEdit

radiusLineEdit

QPishButton

计算

counBtn

修改后的情况:

现在,编写计算圆面积功能代码

在“Line Edit”编辑框内输入半径值,然后单击“计算”按钮,则在areaLabel_2中显示对应的圆面积。

操作步骤如下。

在“计算”按钮上按鼠标右键,在弹出的下拉菜单中选择“Go to slot...”命令,在“Go to slot”对话框中选择QAbstractButton的“clicked()”信号,单击“OK”按钮,如图所示:

进入MainWindow.cpp文件中按钮单击事件的槽函数on_countBtn_clicked(),在此函数中添加如下代码:

void MainWindow:: on_countBtn_clicked()
{
    bool ok;
    QString tempStr;
    QString valueStr = ui->radiusLineEdit->text();
    int valueInt = valueStr.toInt(&ok);
    double area = valueInt * valueInt * PI;				//计算圆面积
    ui->areaLabel_2->setText(tempStr.setNum(area));
}

在MainWindow.cpp文件开始处添加以下语句:

const static double PI = 3.1416; //

参见下图:

现在可以编译运行程序了。

在“Line Edit”文本框内输入半径值,单击“计算”按钮后,显示圆面积值:

CMake构建项目的结构

现在看看上面这个小项目的结构:

☆CMakeLists.txt文件,是CMake构建系统的配置文件——主要构建脚本。CMakeLists.txt 文件是用于定义项目的构建过程和配置的主要 CMake 构建脚本文件。它包含了项目的目录结构、依赖项、编译选项、安装规则等信息。这个文件应该被包含在版本控制系统中,因为它是项目的重要构建脚本。

☆CMakeLists.txt.user文件不是CMake构建系统的一部分,它只是Qt Creator为了方便开发者而生成的一个辅助文件。你可以选择将CMakeLists.txt.user文件包含在版本控制系统中,或者将其添加到.gitignore等忽略文件中,以避免不必要的提交。

CMakeLists.txt.user 文件通常包含了一些与个人开发环境相关的配置,例如编译器选项、调试器设置、本地路径等。这些设置是针对每个开发者的个人偏好和环境而定的,因此不应该被共享到项目的代码库中。

☆源代码文件 (.cpp, .h):这些文件包含了程序的实现代码和头文件。在QT Creator中,这些文件可以通过项目目录中的“Sources”和“Headers”文件夹进行组织。

main.cpp文件是整个应用程序的入口点。它包含main函数,该函数是应用程序启动时首先执行的函数。在main函数中,你会创建一个QApplication对象,并且通常也会创建你的主窗口对象,然后将控制权交给Qt的事件循环。

mainwindow.cpp文件包含了主窗口类的实现。这里你会定义主窗口类的构造函数、析构函数以及其他成员函数的实现。通常,你会在这个文件中实现主窗口的初始化、事件处理逻辑等。

在Qt应用程序中,mainwindow.h文件是用来定义主窗口类的接口的,它包含了类的声明和接口定义。你可以在这个文件中定义主窗口类的声明一些Qt的类的声明,比如QMainWindow或者QWidget,以及包括类的成员变量、成员函数的声明、信号和槽等。它通常会与mainwindow.cpp文件配合使用,mainwindow.cpp包含了主窗口类的实现,而mainwindow.h包含了主窗口类的声明。

☆界面设计文件 (.ui):这些文件用来描述应用程序的用户界面。在QT Creator中,这些文件可以通过项目目录中的“Forms”文件夹进行组织。

☆资源文件 (.qrc):如果已建立这话,因为还未建立故未出现,后面将建立。这些文件用来管理应用程序中的图像、音频、文本和其他数据文件。在QT Creator中,这些文件可以通过项目目录中的“Resources”文件夹进行组织。

下面介绍CMake 构建项目中不用向导添加和使用资源文件的情况

先给出CMake 构建项目中不用向导添加和使用资源文件的步骤概述:

1.创建资源文件 (.qrc):首先,创建一个新的 Qt 资源文件,例如 "resources.qrc"。这个文件是一个 XML 文件,用来列出所有要包含在应用程序中的资源文件。在项目的目录中手工(如用记事本)创建一个新的 Qt 资源文件。

在 "resources.qrc" 文件中,你可以添加你的资源文件。文件的格式如下:

<RCC>
    <qresource prefix="/">
        <file>images/myicon.png</file>
        <file>images/mybackground.png</file>
        <file>sounds/mysound.wav</file>
        <file>videos/myvideo.mp4</file>
    </qresource>
</RCC>

 在这个例子中,资源文件被添加到了根路径 ("/") 下。你需要按照实际的文件路径来修改这些文件名。

2.添加资源文件到 CMakeLists.txt:你需要在 CMakeLists.txt 文件中手工添加 resources.qrc 文件。在 add_executable 或 add_library 命令中,包含 resources.qrc 文件。例如:add_executable(MyApp main.cpp window.cpp resources.qrc)

若你的 CMakeLists.txt 文件已经包含了PROJECT_SOURCES变量,你应该这样修改你的 CMakeLists.txt:

set(PROJECT_SOURCES

    main.cpp

    mainwindow.cpp

    mainwindow.h

    mainwindow.ui

    resources.qrc  # 在这里添加你的资源文件

)

3.在代码中使用资源文件:现在,你可以在代码中使用这些资源文件。你可以使用 :/ URL 的方式来引用这些文件。例如,设置窗体的图标和背景图片,如果你的主窗体类是 MainWindow,你可以在 MainWindow 的构造函数中添加以下代码:

// 设置窗体的图标

this->setWindowIcon(QIcon(":/images/myicon.png"));

// 设置窗体的背景图片

this->setStyleSheet("QMainWindow { background-image: url(:/images/mybackground.png) }");

对于音频和视频文件,你可以使用 QMediaPlayer 类来播放它们:

c++复制代码

// 播放音频文件

QMediaPlayer* player = new QMediaPlayer;

player->setMedia(QUrl("qrc:/sounds/mysound.wav"));

player->play();

// 播放视频文件

QMediaPlayer* videoPlayer = new QMediaPlayer;

QVideoWidget* videoWidget = new QVideoWidget;

videoPlayer->setVideoOutput(videoWidget);

videoPlayer->setMedia(QUrl("qrc:/videos/myvideo.mp4"));

videoWidget->show();

videoPlayer->play();

这就是在 CMake 构建的项目中使用 Qt 资源系统的步骤。如果你在这个过程中遇到任何问题,可以查阅 Qt 文档或者在网上搜索相关的教程和示例。

下面结合具体的例子讲解,为上面的小项目,添加窗体图标和背景图片。

请前面提到的准备好两张图片,其中Qt.png 要作为窗体图标,BGImage.jpg作为窗体背景图片,放在项目的子目录ResFolder中。

在项目的根目录下,创建一个名为 "resources.qrc" 的文件:

<RCC>
    <qresource prefix="/">
        <file>ResFolder/Qt.png</file>
        <file>ResFolder/BGImage.jpg</file> 
    </qresource>
</RCC>

添加资源文件到 CMakeLists.txt

这样修改你的 CMakeLists.txt,在set(PROJECT_SOURCES部分,添加resources.qrc行:

set(PROJECT_SOURCES

    main.cpp

    mainwindow.cpp

    mainwindow.h

    mainwindow.ui

    resources.qrc  # 在这里添加你的资源文件

)

在代码中使用资源文件:

如果你的主窗体类是 MainWindow,你可以在 MainWindow 的构造函数中添加以下代码:

使用setWindowIcon方法设置窗体图标:this->setWindowIcon(QIcon(":/ResFolder/Qt.png"));

使用 setStyleSheet 方法来设置窗体背景图片:this->setStyleSheet("MainWindow { background-image: url(:/ResFolder/BGImage.jpg) }");

请注意,这种方法会使图片铺满整个窗体,如果窗体的尺寸和图片的尺寸不匹配,图片可能会被拉伸或压缩。另外,你还可以使用其他 CSS 属性来调整背景图片的显示方式,例如 background-repeat、background-position 和 background-size。

如果你想让图片保持原始尺寸并居中显示,可以使用以下代码:this->setStyleSheet("MainWindow { background-image: url(:/ResFolder/BGImage.jpg); background-repeat: no-repeat; background-position: center; }");

请注意资源文件中的路径。

运行效果如下:

★CMake 构建项目中使用向导添加和使用资源文件

为此,先用CMake构建项目构建一个项目ch02b。这一步不再详述,具体参见上面的情况。

运行Qt Creator,在欢迎界面左侧点“Projects”按钮,或者选择 “File” -> “New File or Project…”。

在打开的向导中,选择 “Application” 下的 “Qt Widgets Application”,取决于你想创建的应用类型。单击“Choose” 然后按照向导提示创建新项目,我这里,项目名设置为ch02b,其他按向导默认,注意,Qt Creator 10默认的构建系统(Build system)是CMake 。

编写计算圆面积功能代码

在“Line Edit”编辑框内输入半径值,然后单击“计算”按钮,则在areaLabel_2中显示对应的圆面积。

再添现在可以编译运行程序了。

使用向导添加资源文件,详细介绍如下:

用CMake构建的项目,使用向导添加资源文件步骤

在项目树中右键单击项目(Projects)名称(前面带有小锤图标),选择“添加新文件(Add New)”。

使用Qt Creator创建资源文件(.qrc文件)

在“添加新文件(Add New)”对话框中,选择“Qt” > “Qt资源文件(Qt Resoorce File)”>“选择(Change)”按钮。

在“Qt资源文件(Qt Resoorce File)”对话框中的“Location”页,输入资源文件的名称和路径,单击“下一步”;

然后在“汇总页(Summary)”对话框中添加资源文件。单击“完成(Finish)”按钮,完成资源文件的添加。参见下图:

添加资源文件后,再进行下面的操作。

在Qt Creator中,打开.qrc文件添加资源文件的步骤:

在Qt Creator中打开您的项目。

在左侧的“Projects(项目)”面板中选择您的项目文件夹并单击展开。

找到.qrc文件并右键单击它。

在弹出菜单中选择“Open in Editor(在编辑器中打开)”。

现在,就可以用资源视图中的"Add Prefix"和"Add Files",并按照提示添加相应的文件或文件夹。

为了方便管理避免误操作和后续的修改,建议你在项目目录中建立子文件夹我这里命名为ResFolder,将资源文件先手工复制进去。

点击资源视图中的Add Prefix按钮,添加前缀名可以修改(前缀名字主要是为了区分这些资源的作用,例如背景音乐资源文件,或者专门给按钮用的图片,或者专门用来做头像的图片等)。我这里建立一个 /preRes

然后点击Add Files按钮,添加作为窗体图标(icon和窗体背景需要的图片等文件。为了方便管理避免误操作和后续的修改,建议你在项目目录中建立子文件夹,将资源文件先手工复制进去。完成后情况如下:

运行“build”菜单中的【build Project “项目名”Ctrl+B】,现在可以使用Qt Designer添加窗体图标(icon)、窗体背景需要的图片

在Qt Designer中直接设置:

再“Projects(项目)”面板中找到mainwindow.ui双击

添加窗体图标(icon):在窗体属性编辑器中,在"windowIcon"属性栏中选择图标文件。参见下图:

设置窗体背景图片,在"styleSheet"属性栏中指定背景图片路径。参见下图:

现在可以,运行效果和不用向导添加和使用资源文件的情况一样,就不展示了。

附录

Getting started with CMake https://doc.qt.io/qt-6/cmake-get-started.html

The Qt Resource System https://doc.qt.io/qt-6/resources.html

解析QT6 CMake文件 https://zhuanlan.zhihu.com/p/630034777

QT的CMake入门 https://runebook.dev/zh/docs/qt/cmake-get-started

上面的小应用程序就算开发完了,下篇介绍项目的发布:

Qt 6之三: 项目的发布 https://blog.csdn.net/cnds123/article/details/130827966

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要获取Qt MVC框架的项目源码,您可以按照以下步骤进行下载。 首先,打开Qt官方网站(https://www.qt.io/),在顶部导航栏中选择“Downloads”(下载)菜单。 在下载页面,您可以选择Qt的版本。点击“Go open source”(选择开源版本)可进入开源版本下载页面。 在此页面中,您可以选择您所需的操作系统和Qt版本。根据您的需求,选择合适的操作系统(如Windows、Mac或Linux)和Qt版本。 选择了操作系统和Qt版本后,您将看到一系列可供下载的Qt版本。找到其中包含MVC框架的项目源码的版本,并点击相应的下载按钮。 下载完成后,您将得到一个压缩文件。解压缩该文件,并找到包含MVC框架项目源码的文件或文件夹。 现在,您可以使用您喜欢的集成开发环境(IDE)打开该项目源码文件夹,并开始浏览、编辑和构建您的项目。 总之,要获取Qt MVC框架的项目源码,您需要前往Qt官方网站下载相应的版本,解压缩文件并使用IDE打开该项目源码文件夹。 ### 回答2: Qt MVC框架是一种用于构建模型-视图-控制器(MVC)架构的框架,它可以帮助开发人员更好地组织和管理他们的项目代码。 关于Qt MVC框架的项目源码下载,您可以通过以下几种途径获取: 1. Qt官方网站:Qt官方网站(https://www.qt.io/)提供了许多Qt开源项目的源码下载。您可以在官方网站上搜索并下载与MVC框架相关的项目源码。 2. GitHub:GitHub是一个开源代码托管平台,许多开发人员将他们的项目源码上传到GitHub上进行分享和协作。您可以在GitHub上搜索Qt MVC框架相关的项目,如“Qt MVC”、“Qt Model View Controller”等关键词进行搜索,然后找到并下载您感兴趣的项目源码。 3. 开发者社区:Qt开发者社区是一个和其他Qt开发人员交流与分享经验的平台,您可以在社区中搜索相关的项目源码下载链接或者咨询其他开发者是否有可用的源码。 无论您从哪里下载项目源码,记得仔细阅读源码文档,了解项目结构和核心功能。如果您希望进行修改或定制,可以通过Qt Creator等集成开发环境打开源码,并进行编译和调试。同时,为了尊重开发者的劳动成果,请遵守相关的开源协议,并遵循源码的使用规范。 希望对您有所帮助! ### 回答3: Qt是一种跨平台的C++应用程序开发框架,提供了丰富的功能和工具用于开发各种类型的应用程序。其中,Qt MVC框架是Qt中的一部分,用于实现模型-视图-控制器的软件设计模式。 如果您想要下载Qt MVC框架的项目源码,可以按照以下步骤进行: 1. 打开Qt官方网站(https://www.qt.io/zh-hans/)。 2. 在网站的顶部菜单中,点击"下载"选项。 3. 在下载页面中,选择您需要的版本和操作系统,然后点击"下载"按钮下载Qt框架。 4. 完成下载后,安装Qt框架到您的开发环境中。 5. 打开Qt开发环境,创建一个新的Qt项目。 6. 在项目导航栏中,选择"添加库文件"或类似的选项。 7. 在弹出的对话框中,搜索并选择"MVC"相关的库文件。 8. 添加MVC库文件后,您可以通过在线文档或其他源学习如何使用该框架。 9. 在开发过程中,您可以根据需要使用Qt的开源示例代码和社区贡献的代码来帮助您更好地理解和使用MVC框架。 10. 如果您需要更深入地了解MVC框架的实现细节,您还可以参考Qt的源代码,可以通过网站下载或使用版本控制系统来获取源代码。 总结:您可以通过Qt官方网站下载最新版本的Qt框架,然后创建一个Qt项目并添加MVC库文件。您还可以使用Qt的开源示例代码和社区贡献的代码来帮助您学习和使用MVC框架。如果需要深入了解MVC框架的实现细节,可以查看Qt的源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值