PLLUG C++/Qt Roadmap Book
  • Вступ
  • Найважливіший розділ у цій книжці
    • Кілька критично важливих порад
    • Встановлення середовища та початок роботи
    • Підготовка до роботи. Командний рядок.
      • Встановлення та налаштування суперконсолі (тільки на Windows)
      • Cheatsheet: Робота з командним рядком
    • Компіляція та запуск першої програми
      • Найменьша програма мовою С++
      • Компіляція програми: як це працює
      • Починаємо програмувати
    • Базова робота з Git та створення власного репозиторію
      • Підготовка до роботи
      • Створюємо репозиторій та заливаємо на GitHub
      • Cheatsheet: Простий алгоритм для роботи з системою контролю версій (одна гілка, один розробник)
      • Працюємо з Git правильно
  • Мова С++ - швидкий вступ та обрані теми
    • Змінні. Деякі з основних типів та їх застосування.
      • Типи int та double
      • Тип bool
      • Тип char
      • Тип std::string
      • Тип std::vector
      • Тип std::array
    • Ключове слово const
  • Середовище розробки QtCreator
    • Налаштування та підготовка до роботи
      • Налаштування інструментаріїв
    • Довідка та ресурси
    • Гарячі клавіші
    • Робота з проектами у QtCreator
      • Файли проекту
      • Основні змінні, які беруть участь у описі проекту
      • Компіляція проекту Qt
      • Очистка проекту
  • Абстрактні типи даних та керування памяттю
    • Абстрактні типи даних
      • Об'єкти та класи. Абстракція.
      • Поля та методи класу
      • Успадкування
      • Віртуальні методи та поліморфізм
    • Вказівники та пам'ять
      • Адреса
      • Вказівники
      • Вказівники: примітивна демонстрація програми у пам'яті
      • Час зберігання об'єкту
  • Знайомство з Qt5
    • Огляд Qt5
      • Ласкаво просимо у світ Qt
      • Огляд можливостей Qt 5
      • Ліцензування Qt
      • Короткий огляд історії Qt
      • “Екосистема” Qt
    • Створення графічного інтерфейсу засобами Qt
      • Віджети (Widgets)
      • Компонування (Layouts)
      • Сигнально-слотові з'єднання
      • Створення сигналів (signals) та слотів (slots)
      • Підсумок: сигнально-слотові з'єднання
      • Коротко про елементи графічного інтерфейсу та їх використання
  • Cheatsheets
  • Demos
  • Missions
    • Mission 1: Досліджуємо Git та командний рядок
    • Mission 2: Консольна гра
    • Mission 3: MazeGame
    • Mission 4: Створюємо абстрактний тип даних
Powered by GitBook
On this page
  • Створення власних сигналів
  • Створення власних слотів
  1. Знайомство з Qt5
  2. Створення графічного інтерфейсу засобами Qt

Створення сигналів (signals) та слотів (slots)

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

Також необхідно додати до опису класу (перед описом будь яких інших членів класу, у секції private) макрос Q_OBJECT, який буде оброблений метаоб'єктним компілятором moc (програма, яка виконує попередню обробку тексту програми під час запуску qmake та генерує додатковий код для реалізації можливостей, які надає Qt). Далі у описі класу можна вказати власне сигнали та слоти. Сигнали описуються у розділі signals, а слоти у розділі slots, де перед назвою розділу стоїть спеціифікатор доступу (public, private або protected).

Створення власних сигналів

Створення власних слотів

Слоти є звичайними методами класу, які мають реалізацію та можуть приймати параметри та повертати значення. Специфікатор доступу стосується лише випадків використання слота як звичайного метода, але не сигнально слотових з'єднань (при отриманні сигналу, слот буде викликаний незалежно від специфікатора). Також значення, яке повертає слот ігнорується при сигнально-слотовому з'єднанні. Сигнали, на відміну від слотів, не мають реалізації. Їх реалізація забезпечується метаоб'єктною системою Qt. Сигнали є “захищеними” (protected) методами – їх можна посилати з класів, які успадковують від класу, що містить сигнал. Сигнально-слотові з'єднання можуть відбуватися як між об'єктами, так і всередині самого об'єкту, коли той самий об'єкт є одночасно і відправником сигналу, і отримувачем.

PreviousСигнально-слотові з'єднанняNextПідсумок: сигнально-слотові з'єднання

Last updated 7 years ago