Коротко про елементи графічного інтерфейсу та їх використання

Клас QWidget

Усі віджети у Qt успадковують від класу QWidget. Клас QWidget надає базову функціональність спільну для всіх віджетів. Серед властивостей, які успадковують від QWidget, – властивість enabled, яка дає змогу дозволити чи заборонити взаємодію користувача з елементом управління (методи void setEnabled(bool) та bool isEnabled()). Коли властивість встановлено логічне значення false — візуальний елемент деактивовано і користувач більше не може з ним взаємодіяти. Зазвичай такі деактивовані елементи змінюють зовнішній вигляд, щоб користувач зміг їх відрізнити від активних. Властивість visible (методи void setVisible(bool) та bool isVisible()) визначає, видимий віджет (значення true) чи ні (значення false). Ці властивості впливають не тільки на сам візуальний елемент, але й на дочірні елементи.

Крім цих загальних властивостей, кожен віджет володіє власними унікальними особливостями, які дають змогу створювати зручні та практичні у використання користувацькі інтерфейси.

Кнопки (Buttons) та прапорці (Check Boxes)

Так, наприклад, Кнопки (Buttons), є дуже часто уживаний елемент управління. В загальному поведінку для кнопок визначає абстрактний клас QAbstractButton. Ці елементи можуть перебувати у ввімкнутому чи вимкненому станах. Стан можна визначати за допомогою властивості checked (метод isChecked()). Перемиканням можна керувати з допомогою властивості checkable (bool isCheckable(), setChеcked(bool)). Від класу QAbstractButton успадковують класи QCheckBox, QPushButton, QRadioButton, QToolButton.

QPushButton найчастіше використовують з'єднуючи його сигнал clicked(), який викликається при натисканні кнопки, з іншими слотами. QToolButton є кнопкою для швидкого доступу до дій чи налаштувань, яку зазвичай використовують усередині панелі інструментів.

QCheckBox – елемент прапорець. Може перебувати у ввімкнутому чи вимкнутому стані. Також може мати третій проміжний стан, підтримку якого можна активувати з допомогою методу setTristate().

QRadioButton – кнопка-перемикач. Так як і прапорець може перебувати у ввімкнутому чи вимкнутому стані. Її використовують у групі з іншими перемикачами (див. клас QButtonGroup) для позначення кількох взаємовиключаючих варіантів вибору, де лише один перемикач є ввімкнений, а усі інші вимкнені.

Віджети-контейнери (Containers)

До елементів-контейнерів (Containers) відносять QFrame, QGroupBox, QTabWidget, QToolBox. QFrame – найбільш загальний елемент. Це базовий клас для віджетів, які мають обрамлення. Від нього успадковують такі класи візуальних елементів, як, QLabel, QLCDNumber, QSplitter, QToolBox, QStackedWidget, QAbstractScrollArea. Може використовуватись самостійно для відображення різноманітних рамок.

QGroupBox Використовують для виділення групи віджетів обрамленням та текстовим надписом. Є можливість задати клавіатурну комбінацію, щоб перевести фокус вводу на віджети у групі. Не створює компонування для групи віджетів автоматично.

QTabWidget - віджет для відображення віджетів всередині окремих сторінок. Надає панель вкладок та відображає віджет для поточної сторінки всередині себе. Для роботи необхідно створити новий віджет та додати його як сторінку, а також задати ім'я для сторінки.

QToolBox використовують для створення вертикальної колонки віджетів з вкладками. Кожен віджет має окрему вкладку. Поточний видимий віджет відповідає поточній відкритій вкладці.

Віджети-вигляди (Views)

Також слів виділити елементи-вигляди (Views), до яких відносять QListView, QListWidget, QTableView, QTableWidget, QTreeView, QTreeWidget. Вони доають змогу виводити інформацію у вигляді списків, таблиць та дерев. QListView, QTableView, QTreeView використовують модель, як джерело даних (див. абстракний клас QAbstractItemModel). QListWidget, QTableWidget та QTreeWidget використовують як самостійний віджет з даними, дані додаються поелементно (див. QListWidgetItem, QTableWidgetItem, QTreeWidgetItem).

Елементи виводу інформації (Display widgets)

До елементів виводу інформації (Display widgets) відносять QLabel. QLCDNumber та QProgressBar. QProgressBar дає змогу вивести поточний прогрес у вигляді заповненої лінії. QLCDNumber виводить цілі та числа з плаваючою комою у стилі семисегментного дисплею. QLabel використовують для виводу різноманітної текстової інформації. Цей віджет також підтримує розмітку HTML4, яку можна використовувати для оформлення тексту.

Елементи вводу (Input widgets)

Найбільш чисельна група — елементи вводу (Input widgets). До них відносять QComboBox, QDateEdit, QDial, QDoubleSpinBox, QFontComboBox, QLineEdit, QScrollBar, QSlider, QSpinBox, QTextEdit, QTimeEdit.

QComboBox – випадючий список, який використовують для вибору елементу зі списку альтернатив.

QDateTimeEdit – поле вводу дати та часу. Дає змогу вводити та показувати час у заданому форматі.Від цього елемента успідковують також QTimeEdit та QDateEdit.

QDial – дає змогу змінювати числове значення, за тим же принципом, що і регулятори на панелі приладів. Успадковує від абстрактного класу QAbstractSlider.

QLineEdit – поле вводу. Дає змогу не тіільки вводити текст, але й перевіряти допустимість вводу (див. клас QValidator). Має режим для вводу пароля. Також можливо задати маску для вводу значення.

QScrollBar – елемент керування скролінгом. Успадковує від абстрактного класу QAbstractSlider. Кожному положенню вказівника відповідає значення, у заданих межах. Часто використовують для прокручування вмісту інших віджетів.

QSlider - Елемент, який використовує перетягування, мишкою для вводу значення. Кожному положенню вказівника відповідає значення, у заданих межах. Успадковує від абстрактного класу QAbstractSlider.