Extending Qt Creator Manual

Common Extension Tasks

Creating Plugins

Basics

Design Principles

Creating 3rd-Party Plugins

Creating Wizards in Code

Introduction

Relevant Classes

Setters and Getters of IWizardFactory

Creating Your First Plugin

Creating a Plugin Project

Building and Running the Plugin

File Structure

qmake Project

Plugin Meta Data Template

Plugin Class

Header File

Source File

Extending Qt Creator Manual

Generating Domain Specific Code and Templates

Snippets

File and Project Templates

Custom Wizards

Supporting Additional File Types

MIME Types

Text Highlighting and Indentation

Custom Text Editors

Other Custom Editors

Running External Tools

Simple External Tools

Complex External Tools

Loosely Integrating Tools

Interacting with Tool Output

All Topics

External Tool Specification Files

File Name

Location

File Format

Main Tag

Description Tags

Executable Specification Tag

Example

Getting and Building Qt Creator

Getting Qt

Getting and Building Qt Creator

Plugin Life Cycle

Plugin Meta Data

Main Keys

Plugin-describing Keys

Dependencies

Optional Dependencies

Test Dependencies

Command Line Arguments

Example Test<@op>.</@op>json

A Note on Plugin Versions

Qt Creator API Reference

Libraries

Core Libraries

Additional libraries

Plugins

Qt Creator Classes

Qt Creator Coding Rules

Submitting Code

Binary and Source Compatibility

Code Constructs

Formatting

Capitalizing Identifiers

Whitespace

Pointers and References

Operator Names and Parentheses

Function Names and Parentheses

Keywords

Comments

Braces

Parentheses

Line Breaks

Declarations

Declaring Variables

Namespaces

Patterns and Practices

Namespacing

Passing File Names

Plugin Extension Points

Using the Global Object Pool

C++ Features

Null Pointers

C++11 and C++14 Features

Lambdas

<@keyword>auto</@keyword> Keyword

Scoped enums

Delegating constructors

Initializer list

Initialization with Curly Brackets

Non-Static Data Member Initialization

Defaulted and Deleted Functions

Override

Nullptr

Range-Based for-Loop

Using QObject

File Headers

Including Headers

Casting

Compiler and Platform-specific Issues

Esthetics

Inheriting from Template or Tool Classes

Inheritance Versus Aggregation

Conventions for Public Header Files

Class Member Names

Documentation

Qt Creator Functions

Qt Creator Main Classes

Qt Creator Namespaces

The Plugin Manager, the Object Pool, and Registered Objects

object pool

Plugin Manager

Object Pool and Registered Objects

User Interface Text Guidelines

Grammar and Style

Punctuation

Writing Tooltips

Writing Tooltips in Design Mode

Writing Messages

UI Text Capitalization

Using Book Style Capitalization

Checking Book Style Capitalization

Using Sentence Style Capitalization

Preparing for Localization

Marking UI Text for Translation

Features of Languages or Writing Systems

Common Qt Creator Terms

Writing Documentation

Configuring the Documentation Project

Creating Folders and Files

Integrating Topics to Documentation

Updating Next and Previous Links

Writing Text

Capitalizing Headings

Using Images

Taking Screen Shots

Hightlighting Parts of the Screen

Optimizing Images

Using RIOT

Using OptiPNG

Building Documentation

Code Assist for Editors

Snippets for Editors

Qt Creator CDB Extensions