джет має свій набір властивостей, що визначається відповідним йому класом бібліотеки Qt. Властивості віджета можуть бути змінені за допомогою «Редактора властивостей». Для кожного класу властивостей віджета існує свій спеціалізований редактор [16]. Характерною особливістю Qt Designer є підтримка візуального редагування сигналів і слотів.
Створене в Qt Designer уявлення зберігається у файл в XML-форматі, який підлягає конвертації в C + + код за допомогою утиліти uic. У результаті буде отриманий модуль, що містить код створення та ініціалізації елементів графічного інтерфейсу. Для того щоб скористатися отриманим модулем у власній програмі, необхідно його імпортувати і викликати метод класу, що міститься в методі, передавши йому як параметр власну реалізацію віджету Qt.
Як приклад розглянемо реалізацію головного вікна програми. У бібліотеці Qt існує клас QMainWindow, призначений для реалізації головного додатки. Головне вікно надає структуру для створення користувальницького інтерфейсу додатку. QMainWindow має власний компонувальник, в який можна додавати панель інструментів, рядок меню і рядок стану. Компоновщик має центральну область, яка може бути зайнята будь-яким стандартним або призначеним для користувача віджетом.
Для того щоб отримати розробити власний віджет (зокрема, головне вікно програми), необхідно наслідувати клас, що володіє базовою функціональністю, а потім реалізувати необхідну функціональність, додаючи нові методи або перевизначаючи існуючі.
class VisKeyRec: public QMainWindow
{_OBJECT
public: (QWidget * parent=0, Qt :: WFlags flags=0);
~ VisKeyRec ();
/ / власні методи і поля ...
private:
Ui :: VisKeyRecClass ui;
/ / приватні методи і поля ...
private slots: on_actionAddUser_triggered ();
signals: dbSelected (QString);
};
У коді, представленому вище, здійснюється оголошення власного класу, що реалізовує функціональність головного вікна. Приховане поле з класу Ui :: VisKeyRecClass є класом, отриманим за допомогою Qt Designer. Об'єкт ui містить метод setipUi (QWidget *), який повинен бути викликаний в конструкторі класу головного вікна, в результаті чого відбудеться наповнення класу віджетами, зазначеними при конструюванні користувача інтерфейсу.
В результаті зазначених операцій буде отриманий клас, що містить необхідні елементи призначеного для користувача інтерфейсу. Надалі від програміста потрібна розробка поведінки розміщених елементів інтерфейсу, здійснення взаємодії об'єктів між собою.
Механізм сигналів і слотів Qt призначений для зв'язування об'єктів один з одним, комунікації між собою. Пов'язаним об'єктах немає необхідності що-небудь «знати» один про одного. Сигнали і слоти набагато зручніше механізму функцій зворотного виклику (callbacks) і чітко вписуються в концепцію ООП.
Для використання цього механізму оголошення класу повинно містити спеціальний макрос Q_OBJECT на наступному рядку після ключового слова class:
class MyClass {_OBJECT:
/ / ...