×
Namespaces

Variants
Actions

自定义QtCreator工程模板和类模板

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Compatibility
Platform(s):
Symbian
Article
Created: Amazing110 ()
Last edited: hamishwillee (13 Jun 2012)

Contents

Introduction

当我们使用QtCreator进行一个大的项目开发时,也许需要使用一套自己的工程模板,类模板来规范众多开发者的代码规范,同一代码风格,这时候我们就需要在QtCreator中创建自己的类模板或者说工程模板供项目人员使用。那么下面这篇文章就会教大家怎么在QtCreator中创建一个工程模板和类模板。

Summary

下面的例子都是基于Qt Creator 2.3.1.

创建一个工程模板

1> 在目录“\QtCreator\share\qtcreator\templates\wizards\”下,创建一份该目录下“helloworld”文件夹的拷贝,名字可以根据你想创建的工程的类别随意取,比如我们想自定义一个数据库存储相关的工程,我们可以取名“customsql”。

2> 修改“customsql”文件夹下的wizard_sample.xml的文件名为“wizard.xml”,这一步很重要,必须要修改后QtCreator才能识别你的模板。

3> 修改“project.pro”文件,添加如下代码:

%SQLDATABASE%QT += sql
     这是由于我们自定义的是一个关于数据库的工程那么,我们肯定是需要在工程文件中添加如此“CONFIG += sql”配置,那么“%SQLDATABASE%” 又是怎么回事呢?
  我们可以把“%SQLDATABASE%” 当做是“QT += sql”这句代码的别名,我们会在xml文件中进行设定,让开发者在创建工程时,自己选择是否添加此代码到pro文件。

4> 修改“wizard.xml”文件:

  在<field name="NETWORK">   ........        </field>后面添加如下代码:
        <field name="SQLDATABASE">
<fieldcontrol class="QCheckBox" truevalue="" falsevalue="# "/>
<fielddescription>Include sql database module</fielddescription>
</field>
      这样在我们利用此模板创建工程时,在想到中我们就会看到如下的选项:

|Include sql.JPG


当然你也可以向工程中添加更多的文件,这是我们只需要修改xml就可以做到,如下:
        <files>
<file source="main.cpp" openeditor="true"/>
<file source="project.pro" target="%ProjectName%.pro" openproject="true"/>
</files>

完成后,我们在创建工程时就会看到自定义的工程模板,如下图:

Custom project.JPG



创建一个类模板

在目录“\QtCreator\share\qtcreator\templates\wizards\”下,有一个文件名字叫“listmodel”,我们只需要把其中的文件“wizard_sample.xml”修改为“wizard.xml”,然后重启QtCreator就可以在使用了。 下面我们就解析一下这个模板实例: 如图所示:Sql class files.JPG

1> 文件listmodel.cpp和listmodel.h就是你所想添加的新类,可以根据你的需要,从有不同的实现。

2> wizard.xml文件:下面我们仔细解析一下该文件:

下面的代码指定了 类创建向导中的一些属性:

 <wizard version="1" kind="class" id="A.ListModel" category="B.CustomClasses">
 
<description>Creates a QAbstractListModel implementation.</description>
<description xml:lang="de">Erzeugt eine Implementierung von QAbstractListModel.</description>
 
<displayname>QAbstractListModel implementation</displayname>
<displayname xml:lang="de">Implementierung von QAbstractListModel</displayname>
 
<displaycategory>Custom Classes</displaycategory>
<displaycategory xml:lang="de">Benutzerdefinierte Klassen</displaycategory>

下面的代码指定了你需要添加到工程的文件:

 <files>
<file source="listmodel.cpp" target="%ClassName:l%.%CppSourceSuffix%" openeditor="true" />
<file source="listmodel.h" target="%ClassName:l%.%CppHeaderSuffix%" openeditor="true" />
</files>

参考链接

This page was last modified on 13 June 2012, at 13:58.
105 page views in the last 30 days.