购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 了解Qt生成的工程文件

Qt生成的工程文件包括工程文件、样式文件、头文件和源文件,在Qt Creator集成环境编辑模式中可以分类看到,双击相应的文件,就会在编辑窗口中打开,如图1-11所示。这些文件存放在QT\Ch1目录中。

图1-11 编辑窗口快捷面板

1.工程文件:*.pro

工程文件定义了Qt用的类库、目标程序的文件名,采用模板、C++源文件、C++头文件和样式文件,如下所示:

#-------------------------------------------------
#
#Project created by QtCreator 2013-11-27T15:34:33
#
#-------------------------------------------------
QT      +=core gui
TARGET=Ch1
TEMPLATE=app
SOURCES+=main.cpp\
        mainwindow.cpp
HEADERS  +=mainwindow.h
FORMS    +=mainwindow.ui

2.样式文件: *.ui

样式文件定义了人机交互界面,在设计模式下是所见即所得的窗口和控件,在编辑模式下是XML定义文件,如下所示:

<?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>400</width>
    <height>300</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>400</width>
            <height>17</height>
      </rect>
  </property>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
  <attribute name="toolBarArea">
            <enum>TopToolBarArea</enum>
  </attribute>
  <attribute name="toolBarBreak">
            <bool>false</bool>
  </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <resources/>
  <connections/>
</ui>

Qt编译器在编译样式文件时,自动将XML资源文件编译成C++头文件ui_mainwindow.h。该文件创建了主窗口界面类Ui_MainWindow,封装了样式中的窗口和控件。该文件在QT\Ch1-build-desktop目录中。了解该文件可以更好地理解Qt界面的实现过程。

/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created: Wed Nov 27 16:20:21 2013
**      by: Qt User Interface Compiler version 4.7.0
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
    
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
    
#include<QtCore/QVariant>
#include<QtGui/QAction>
#include<QtGui/QApplication>
#include<QtGui/QButtonGroup>
#include<QtGui/QHeaderView>
#include<QtGui/QMainWindow>
#include<QtGui/QMenuBar>
#include<QtGui/QStatusBar>
#include<QtGui/QToolBar>
#include<QtGui/QWidget>
    
QT_BEGIN_NAMESPACE
    
class Ui_MainWindow
{
public:
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QWidget *centralWidget;
    QStatusBar *statusBar;
    
    void setupUi(QMainWindow *MainWindow)
    {
        if (MainWindow->objectName().isEmpty())
            MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
        MainWindow->resize(400, 300);
        menuBar=new QMenuBar(MainWindow);
        menuBar->setObjectName(QString::fromUtf8("menuBar"));
        MainWindow->setMenuBar(menuBar);
        mainToolBar=new QToolBar(MainWindow);
        mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
        MainWindow->addToolBar(mainToolBar);
        centralWidget=new QWidget(MainWindow);
        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
        MainWindow->setCentralWidget(centralWidget);
        statusBar=new QStatusBar(MainWindow);
        statusBar->setObjectName(QString::fromUtf8("statusBar"));
        MainWindow->setStatusBar(statusBar);
    
        retranslateUi(MainWindow);
    
        QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi
    
    void retranslateUi(QMainWindow *MainWindow)
    {
        MainWindow->setWindowTitle(QApplication::translate("MainWindow", 
"MainWindow", 0, QApplication::UnicodeUTF8));
    } // retranslateUi
    
};
    
namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui
    
QT_END_NAMESPACE
    
#endif // UI_MAINWINDOW_H

3. 头文件: *.h

头文件列出本工程包含的用户头文件。

4. 源文件: *.cpp

源文件列出本工程包含的用户C++源文件。 7dl1Y74wr4XbrYC0vpydWBQzLKXwAJr/QSSi8PMFcfq7zJcKbvDpyf7ygjBg45I+

点击中间区域
呼出菜单
上一章
目录
下一章
×