QT5笔记2 QT文件结构介绍

文章目录

  • 前言
  • 一、QT的文件结构
  • 二、使用步骤
    • 1. .pro文件
    • 2. .ui文件介绍
    • 3. .h和.cpp文件
  • 总结


前言

本文主要介绍Qt的文件结构和组成,以及各个文件的作用。


一、QT的文件结构

Qt的文件结构见于软件的左侧,其中 .pro文件是项目的工程工程文件,主要存放着一些项目信息;.h文件是C++程序的头文件,.cpp文件是项目的程序文件,.ui文件是使用Qt设计师设计的界面文件。
QT5笔记2 QT文件结构介绍_第1张图片

二、使用步骤

文件和.cpp文件与普通C++程序中的文件作用相同,主要介绍设计的MOC编译器,其它主要介绍.pro文件和.ui文件。

1. .pro文件

pro文件是整个项目的管理文件。Qt使用qmake工具,根据pro文件,生成makefile进而编译整个项目,所以pro文件至关重要,在不知道功能的前提下尽量不要进行修改。
pro文件以#作为注释。

#QT+=core gui,是向QT项目中加入core和gui模块,
#Qt中有很多模块,比如网络,数据库,多媒体,蓝牙等等,用到这些功能的时候,都需要在QT中添加相应的模块。   
QT       += core gui
#使用C++的版本,是C++11,所以Qt5中增加了很多特性
#比如delete,override等关键字的使用,再比如lamda表达式等等
CONFIG += c++11
#这个是版本高低导致的,大于QT4.0的模块,需要加入widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#不清楚
DEFINES += QT_DEPRECATED_WARNINGS
#源文件
SOURCES += \
    main.cpp \
    widget.cpp
#头文件
HEADERS += \
    widget.h
#Ui文件
FORMS += \
    widget.ui
#资源文件
 RESOURCES += \
 src/img/img.qrc \
 src/img/res.qrc
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

2. .ui文件介绍

QT5笔记2 QT文件结构介绍_第2张图片

ui文件是Qt根据用户的布置而生成的xml格式的文件,里面描述了部件如何进行布置,编译之后会将其生成C++格式的文件,这个文件用户在程序中不可见,但是可以对其进行调用。调用的方式有多种,后面会讲。

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Widget</class>
 <widget class="QWidget" name="Widget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Widget</string>
  </property>
  <widget class="QPushButton" name="pushButton">
   <property name="geometry">
    <rect>
     <x>50</x>
     <y>100</y>
     <width>89</width>
     <height>25</height>
    </rect>
   </property>
   <property name="text">
    <string>PushButton</string>
   </property>
  </widget>
  <widget class="QToolButton" name="toolButton">
   <property name="geometry">
    <rect>
     <x>190</x>
     <y>110</y>
     <width>26</width>
     <height>24</height>
    </rect>
   </property>
   <property name="text">
    <string>...</string>
   </property>
  </widget>
  <widget class="QCheckBox" name="checkBox">
   <property name="geometry">
    <rect>
     <x>70</x>
     <y>190</y>
     <width>92</width>
     <height>23</height>
    </rect>
   </property>
   <property name="text">
    <string>CheckBox</string>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>


另外在某些情况下,需要对Ui文件进行一些修改,在可视化的界面是无法进行修改的,而在XML格式的文件中进行修改非常简单,需要可以适当对XML文件进行下阅读,了解其基本格式。

3. .h和.cpp文件

在QT中实际见到的.h和.cpp文件,并不是最后编译用的.h和.cpp文件。这是用因为Qt使用了MOC(元对象编译器),MOC会为每个包含Q_OBJECT宏的文件提前进行一次编译,生成一个以moc_+原文件名 为名的源文件。这些文件在编译文件夹中可以找到。

这也是为什么,如果需要使用信号和槽机制的源文件需要添加Q_OBJECT宏的原因。另外后期知道,信号是只需要声明,而不需要实现的,而实际上,元对象编译器为我们提供了实现内容。

总结

本章节主要介绍了QT工程的文件组成。

你可能感兴趣的:(QT/C++,qt)