Використання контейнерів на прикладі QList
Використання масивів у C++ пов'язане з низкою незручностей. Для їх усунення розроблені класи-сховища, як у стандартній бібліотеці C++, так і в Qt (QVector, QList, QLinkedList, QStack, QQueue, QMap, QMultiMap, QHash і QMultiHash) див. [Далі, розділ 4]. Символи T і K означають, що контейнер можна використовувати для зберігання даних будь-якого типу.
Найбільш універсальним є клас QList. Приклади його використання:
Додати дані можна за допомогою операції направлення до потоку.
Усі контейнери мають спільні методи:
видалити всі елементи
рядок порожній? true, якщо size() == 0
bool isEmpty() const;
Також їм перевантажені оператори порівняння == і !=.
Контейнер QStringList
Клас QStringList є альтернативним визначенням для контейнера QList. Крім того, є кілька додаткових функцій. Рядок може бути розбитий на підрядки за допомогою функції QStringList::split():
QString str = "polluter pays principle";
QStringList words = QStringList::split(" ", str);
У цьому прикладі рядок "polluter pays principle" розбивається на три рядки; "polluter", "pays" та "principle". Функція split() може приймати третій необов'язковий параметр типу bool, який визначає – чи повинні ігноруватися порожні підрядки (за умовчанням) чи ні.
Елементи списку QStringList можуть бути об'єднані в один рядок за допомогою функції join(). Як аргумент їй передається рядок, який має бути вставлений між рядками, що об'єднуються. Наприклад, наступний код демонструє, як можна об'єднати всі рядки у списку, відсортованому за алфавітом, у єдиний рядок, причому підрядки відокремлюються один від одного символом перекладу рядка:
Ще одна важливаоперація над рядками – визначення довжини рядка. Для цього призначена функція length() і, як варіант, isEmpty(), яка повертаєtrue, якщо довжина рядка дорівнює 0.

Малюнок – вікно Qt Designer
QDesigner містить інструменти для створення слотів об'єктів, перевизначення віджетів на формі та формування меню.
Елементи формування
Елементи управління
Кнопки (Button)