赞
踩
根据Qt Creator环境搭建一文介绍的步骤,创建好了一个 Qt 项目,下面介绍 Qt 项目的文件结构
Qt Creator 是分组管理项目内的各种源文件,主要有以下文件:
项目管理文件十分重要,当加入了文件或者删除了文件时, 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
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
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();
}
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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。