Qt 项目中.pro 文件
,.h 文件
和 .cpp 文件
各自的作用:
.pro 文件
:这是 Qt 项目文件,它包含了项目需要的所有信息,例如项目中包含哪些源文件、需要哪些库以及项目的其他配置信息等。可以把它理解为项目的配置和说明文件。
.h 文件
:这是头文件,也叫做头文件。它们包含了类的声明和一些你希望在多个源文件中共享的函数、变量的声明。在这些头文件中,常常包括一些 #define 指令(用于定义常量)和其他类型的配置信息。
.cpp 文件
:这些是源文件,它们包含了程序中的函数和类的实现。
main.cpp
:该文件通常包含 main() 函数,这是所有 C++ 程序的入口点。在 Qt 应用程序中,main() 函数通常会创建一个 QApplication 对象和你自定义的窗口或对话框对象,然后开始消息循环。
mainwindow.cpp
:如果应用程序使用了一个主窗口,那么这个文件就会包含 MainWindow 类的实现。主要的窗口布局和部件创建以及信号-槽的连接等操作都通常在这里进行。
.pro文件:
cpp
QT += core gui widgets
# 添加对Qt核心模块、图形用户界面模块和小部件模块的支持
# core模块提供了Qt的基本的非GUI功能,如信号和槽机制、基本的数据类型、集合类等
# gui模块提供了Qt的GUI功能,如窗口、事件处理、2D图形、字体和文本等
# widgets模块提供了Qt的UI元素,如按钮、文本框、菜单和其他窗口小部件
QT += multimedia
# 添加对Qt多媒体模块的支持
# multimedia模块提供了音视频播放、录制和处理的功能,以及访问摄像头和收音机等硬件设备的能力
.h文件:
cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow> // 包含用于创建主窗口的库
#include <QTextEdit> // 包含用于创建文本编辑器的库
#include <QPushButton> // 包含用于创建按钮的库
class QMediaPlayer; //添加QMediaPlayer的前向声明
// MainWindow 类的定义
class MainWindow : public QMainWindow
{
Q_OBJECT // 使用Q_OBJECT宏,使当前类支持Qt特性如信号和槽
public:
MainWindow(QWidget *parent = nullptr); // 主窗口的构造函数
~MainWindow(); // 主窗口的析构函数
// 私有槽函数声明
private slots:
void onButtonClicked(); // 当按钮点击时执行的槽函数
// 私有成员声明
private:
QMediaPlayer *player; // 声明一个QMediaPlayer的指针,用于播放音频
QPushButton *button; // 声明一个按钮,用户可以通过点击它来触发运行某些操作
QTextEdit *textEdit; // 声明一个文本编辑器,可以显示和编辑文本
};
#endif // MAINWINDOW_H // 结束预处理器的条件编译
mainwindow.cpp文件:
cpp
#include <QDebug>
#include "mainwindow.h"
#include <QVBoxLayout>
#include <QMediaPlayer>
// 主窗口的构造函数
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), // 调用基类的构造函数
player(new QMediaPlayer(this)), // 初始化音频播放器
button(new QPushButton("Click Me!")), // 初始化用于点击的按钮
textEdit(new QTextEdit()) // 初始化文本编辑器
{
// 设置音频播放器的音频文件来源
player->setMedia(QUrl::fromLocalFile("E:/suoche.wav"));
// 连接按钮的点击信号到槽函数 onButtonClicked
connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
// 创建用于主窗口的中心部件和布局管理器
QWidget *centralWidget = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(centralWidget);
// 将按钮和文本编辑器添加到布局
layout->addWidget(button);
layout->addWidget(textEdit);
// 设置中心窗口部件
this->setCentralWidget(centralWidget);
}
// 主窗口的析构函数
MainWindow::~MainWindow()
{
// 删除按钮和文本编辑器
delete button;
delete textEdit;
}
// 点击按钮时执行的槽函数
void MainWindow::onButtonClicked()
{
// 如果音频正在播放,则暂停音频
if(player->state() == QMediaPlayer::PlayingState)
{
player->pause();
}else{
// 否则播放音频
player->play();
}
// 在文本编辑器中添加一行文本
textEdit->append("锁车完成");
}
main.cpp文件:
cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}