Qt Creator

Qt Creator (раніше відома під кодовою назвою Greenhouse) - кроссплатформенная вільна IDE для розробки на С, С + + та QML. Розроблена Trolltech (Digia) для роботи з фреймворком Qt. Включає в себе графічний інтерфейс відладчика і візуальні засоби розробки інтерфейсу як з використанням QtWidgets, так і QML. Підтримувані компілятори: Gcc, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW [3].


1. Особливості

Основне завдання Qt Creator - спростити розробку додатка за допомогою фреймворку Qt на різних платформах. Тому серед можливостей, властивих будь-якому середовищі розробки, є і специфічні, такі як налагодження додатків на QML та відображення в відладчик даних з контейнерів Qt, вбудований дизайнер інтерфейсів як на QML, так і на QtWidgets.

1.1. Робота з проектами

Qt Creator підтримує проекти систем qmake і cmake, починаючи з версії 2.5 поддержіват autotools [4]. Для проектів, створених під іншими системами, може використовуватися в якості редактора вихідних кодів. Є можливість редагування етапів зборки проекту.

Також IDE нативних підтримує системи контролю версії, такі як Subversion, Mercurial, Git, CVS, Bazaar, Perforce. Починаючи з версії 2.5, в поле коментарю до правці підтримується автодоповнення.


1.2. Редагування коду

В Qt Сreator реалізовано автодоповнення [5], в тому числі ключових слів, введених в стандарті C + +11 (починаючи з версії 2.5), підсвічування коду (її визначення аналогічно такому в Kate, що дозволяє створювати свої види підсвічувань або використовувати вже готові). Також, починаючи з версії 2.4, є можливість завдання стилю вирівнювання, відступів і постановки дужок.

Реалізовано ряд можливостей при роботі з сигнатурами методів, а саме:

  • автогенерація порожнього тіла методу після його поновлення;
  • можливість автоматично змінити сигнатуру методу у визначенні, якщо вона була змінена в оголошенні і навпаки;
  • можливість автоматично поміняти порядок слідування аргументів.

Середа розробки має графічний інтерфейс для наступних отладчиков: GDB, CDB і QML / JavaScript. В якості окремої опції реалізовано відображення вмісту контейнерів, таких як QString, std :: map та інших. Підтримуються наступні режими налагодження:

  • простий для налагодження локально запущених додатків, таких як GUI додатка на Qt;
  • термінал для налагодження локально запущених процесів, яким потрібна консоль, звичайно це додатка без GUI;
  • підключений для налагодження локальних процесів, запущених поза Qt Creator;
  • віддалений для налагодження запущених на іншій машині процесів (використовуючи gdbserver);
  • ядро для налагодження завершилися аварійно процесів на Unix;
  • Post-mortem для налагодження завершилися аварійно процесів на Windows;
  • TRK для налагодження процесів, запущених на пристрої Symbian.

Точки зупинки можна задати різними способами, а саме:

  • зупинятися на заданій рядку заданого файлу;
  • зупинятися при виклику функції з певним ім'ям;
  • зупинятися при зверненні до даних по заданому адресою;
  • зупинятися при затриманні виключення;
  • зупинятися при запуску або створенні нового процесу;
  • зупинятися при виконанні системного виклику;
  • зупинятися при зміні в даних з адресами, заданими виразом.

При навігації по коду доступно перемикання між визначенням і оголошенням методу, перейти до оголошення методу, перейменування методу як в окремому проекті, так і в усіх відкритих. Також є можливість викликати довідку згідно з поточним контекстом.


2. Архітектура

Функція main по суті своїй - виклик завантажувача плагінів, які й реалізують весь функціонал. Тому всі компоненти QtCreator так чи інакше пов'язані з плагінами [6].

ExtensionSystem представляє інтерфейс для розробки плагінів, забезпечує завантаження плагінів і базове взаємодія. Содежіт в собі клас-інтерфейс IPlugin, від якого повинні успадковуватися всі плагіни в програмі.

Aggregation містить функції та класи, призначені для об'єднання декількох компонентів в єдине ціле.

Utils - бібліотека утиліт, які можуть викликати плагіни.

QmlJS - бібліотека для підтримки QML і JavaScript.


Примітки

  1. Qt Creator - www.ohloh.net / p / qt-creator
  2. Qt Creator 2.6.1 released - blog.qt.digia.com/blog/2012/12/19/qt-creator-2-6-1-released /
  3. Qt Creator: Adding Tool Chains - doc.qt.nokia.com/qtcreator-2.5/creator-tool-chains.html
  4. Qt Creator: Using Other Build Systems - doc.qt.nokia.com/qtcreator-2.5/creator-project-other.html
  5. починаючи з версії 2.5.1 усунена проблема автодоповнення функцій шаблонних класів
  6. Qt Creator: Qt Creator API Reference - doc.qt.nokia.com / qtcreator-extending / qtcreator-api.html