23
Extending Qt Creator (without writing code) Tobias Hunger

Extending Qt Creator - Qt Developer Days 2014 - Home | Qt · PDF file · 2014-10-30Extending Qt Creator ... Plugin needs to be built for Qt Creator, not for your project! Qml Designer

Embed Size (px)

Citation preview

Extending Qt Creator(without writing code)

Tobias Hunger

Configuration

User configuration● ~/.config/QtProject/(QtCreator*|qtcreator/*)

● Can be changed by “-settingspath <path>” argument

● sqlite db + .ini file

● XML files (and more) in qtcreator subfolder

● Leave alone

● Possible exception: Sessions (*.qws)

Configuration

System wide configuration● ../share/qtcreator/QtProject/*

● Same as above (without sqlite file)

● XML files, .ini-file

● Use sdktool to edit XML files

Configuration

Project configuration

● .user and .shared file

● XML files

● No tool for .shared file, leave .user alone

● Do not check in .user files!

Configuration

Built-in Tools

Editors

Generic Highlighters

● Configure viaTools>Options>Text Editor>Generic Highlighter

● or by putting files into../share/qtcreator/generic-highlighter

Editors

Macros

● Custom complex edit operations

● Configure via Tools>Macros

● No global configuration, user configuration in

.../QtProject/qtcreator/macros (binary files)

Documentation

Custom Documentation

● Configure viaTools>Options>Help>Documentation

● or by putting[Help]InstalledDocumentation=/path/to/dir(Comma separated list of paths) into QtCreator.ini

Debugger

● GDB/LLDB

Python code in shared/qtcreator/dumper/qttypes.py

or register own files inTools>Options>Debugger>GDB>Additional Startup Commands

– qtdump__type__name(d, value)

– qtedit__type__name(d, value)

● CDB

C++ code in src/libs/qtcreatorcdbext (Qt Creator sources!)

Designer

● Designer plugins for custom widgets

Pitfall: Plugin needs to be built for Qt Creator,not for your project!

● Qml Designer offers similar feature for custom QML components

Projects

● Custom Build-/Clean-/Deploy Steps

● Run Custom Executables

● Environment

● Variable Substitution:

– %{CurrentBuild:Name},

– %{CurrentProject:FilePath},

– %{CurrentDocument:Row},

– %{CurrentKit:Id},

... many more!

External Tools

External Tools

● Run stand-alone tools from Qt Creator

– Configure executable, arguments, stdin, etc.● Many variables available

– Output can be displayed or replace selected text or update the editor

● Edit using Tools>External>Configure...

● Drop files into share/qtcreator/externaltools

Task Lists

● Import lists of “Build Issues” into Qt Creator

– Quickly navigate issues with F6/Shift-F6

● Watches file for changes

● file\tline\t(warning|error)\tmessage('\n' is expanded in message)

Code Generation

Snippets

Add custom code snippets, modify existing snippets to suit your needs

● add via Tools>Options>Text Editor>Snippets

● XML files in share/qtcreator/snippets

Wizards

Create custom (sets of) files

● wizard.xml: Metadata + file list + description of UI fields

● Templates of other files to generate

Create subdirectory for your wizards in share/qtcreator/templates/wizards

You need to do more?

Qt Creator PluginDevelopment

Aurindam JanaTobias Hunger

Documentation

● Qt Creator Manual:http://qt-project.org/doc/qtcreator/index.html

● Extending Qt Creator Manual:http://doc-snapshot.qt-project.org/qtcreator-extending/extending-index.html

● Qt Creator mailing list:http://lists.qt-project.org/mailman/listinfo/qt-creator

● IRC:#qt-creator on freenode.net

Thank you!

[email protected] on IRC (freenode.net)