Qt项目文件介绍

Qt项目文件介绍

根据Qt Creator环境搭建一文介绍的步骤,创建好了一个 Qt 项目,下面介绍 Qt 项目的文件结构
在这里插入图片描述
Qt Creator 是分组管理项目内的各种源文件,主要有以下文件:

  • 项目管理文件:.pro 文件就是项目管理文件
  • Header 分组:存放项目内所有的头文件*.h
  • Source 分组:存放项目内的所有 C++源码文件*.cpp
  • Forms 分组:存放项目内所有界面文件*.ui

1. 项目文件*.pro

项目管理文件十分重要,当加入了文件或者删除了文件时, Qt Creator 会自动修改项目文件,有时会通过该文件来添加设置项

QT += core gui	#添加Qt的支持模块,core与gui库是Qt的默认设置
#比较Qt5版本,若是Qt5版本,在main.cpp中application是在QtWidgets下的
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#配置使用c++11 
CONFIG += c++11
#添加 QT_DEPRECATED_WARNINGS 定义
DEFINES += QT_DEPRECATED_WARNINGS
#SOURCES 下是源文件
SOURCES += \
	main.cpp \
	mainwindow.cpp
#HEADERS 下是头文件
HEADERS += \
	mainwindow.h
#FORMS 下是ui界面文件
FORMS += \
	mainwindow.ui
#部署默认的规则
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

2. 头文件*.h

Headers 下的 mainwindow.h,一般有与之对应的 cpp 文件 mianwindow.cpp,其中mainwindow.h 包含类的声明, mianwindow.cpp 包含类的实现

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } 	//定义命名空间Ui
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
	Q_OBJECT //所有用到信号的类都要加这个宏

	public:
		MainWindow(QWidget *parent = nullptr);
		~MainWindow();

	private:
		Ui::MainWindow *ui;
};
#endif // MAINWINDOW

3. 源文件*.cpp

Sources 下的 mainwindow.cpp,有如下内容:

#include "mainwindow.h"
// ui_mainwindow.h 文件是Qt根据.ui文件自动生成的,即要点击构建后才生成
#include "ui_mainwindow.h"
//在MainWindow构造函数中用“,”隔开,new一个Ui中的 MainWindow,里初始化成员的一种方法
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow)
{
	ui->setupUi(this);	//进行界面初始化
}

MainWindow::~MainWindow()
{
	delete ui;	//删除ui
}

Sources 下的 main.cpp,有如下内容:

#include "mainwindow.h"
//包含QApplication类的定义。每个应用程序中都必须使用QApplication对象
//QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标
#include <QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	MainWindow w;	//创建MainWindow对象w
	w.show();		//调用方法show(),显示程序界面
	//main()把控制转交给Qt,当应用程序退出时exec()就会返回
	//在exec()中,Qt接受并处理用户和系统的事件并把它们传递给适当的窗口部件
	return a.exec();	
}

4. 样式文件*.ui

ui 文件由 XML 语言描述组成,编译时会生成相应的 cpp 文件,这样交叉编译器就可以编译它了。mainwindow.ui 是一个 xml 类型的文件,内容如下。 ui 文件是生成的不能手动编辑,只能够通过图形界面修改其属性,双击 mainwindow.ui 后可以跳转到设计界面

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
	<class>MainWindow</class>
	<widget class="QMainWindow" name="MainWindow">
		<property name="geometry">
			<rect>
				<x>0</x>
				<y>0</y>
				<width>800</width>
				<height>600</height>
			</rect>
		</property>
		<property name="windowTitle">
			<string>MainWindow</string>
		</property>
	<widget class="QWidget" name="centralwidget"/>
	<widget class="QMenuBar" name="menubar">
		<property name="geometry">
			<rect>
				<x>0</x>
				<y>0</y>
				<width>800</width>
				<height>28</height>
			</rect>
		</property>
	</widget>
	<widget class="QStatusBar" name="statusbar"/>
	</widget>
	<resources/>
	<connections/>
</ui>

版权声明:本文为Chuangke_Andy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。