- •1. Введення
- •2. Прості засоби|кошти| shell
- •2.1. Структура команд
- •2.2. Угрупування команд.
- •2.3. Перенаправлення команд
- •2.4. Генерація імен файлів.
- •2.5. Командні файли.
- •3. Середовище|середа| shell (змінні і параметри)
- •3.2. Екранування
- •3.3. Маніпуляції з|із| shell-змінними
- •3.4. Експорт змінних
- •3.5. Параметри
- •3.6. Підстановки shell-інтерпретатора
- •3.7. Програмне середовище
- •4. Програмні структури
- •4.1. Команда test ("[ ]")
- •4.2. Умовний оператор "if"
- •4.3. Оператор виклику ("case")
- •4.4. Оператор циклу з|із| переліком|перерахуванням| ("for")
- •4.5. Оператор циклу з|із| передумовою ("while")
- •4.6. Оператор циклу з|із| постумовою ("until")
- •4.7. Порожній оператор
- •4.8. Функції в shell
- •4.9. Обробка переривань ("trap")
- •5. Розробка графічного інтерфейсу за допомогою бібліотеки Qt3. Створення в kDevelop базової структури додатку
- •5.1. Словник
- •5.2. Створення|створіння| проекту
- •5.3. Робота з Qt Designer
- •5.4. Розробка інтерфейсу програми
- •5.5. Додавання|добавка| виджетов|
- •5.6. Створення|створіння| проміжків між виджетами|
- •5.7. Сигнали і слоти
- •5.8. Написання коду
- •6. Литература
5.7. Сигнали і слоти
Сигнали і слоти використовуються для зв'язку між об'єктами Qt. Механізм сигналів і слотів є|з'являється,являється| найважливішою можливістю|спроможністю| Qt і, можливо, тим, чим Qt найбільше|більш всього| відрізняється від решти інструментаріїв, що часто використовуючих використовують механізми зворотного зв'язку. Сигнали виходять від об'єктів, коли відбувається|походить| якась подія, наприклад, користувач друкує щось в полі введення або натискає|натискує| кнопку. Слот — це просто функція, що викликається|спричиняється| у відповідь на певний сигнал.
Тепер, коли додані|добавлені| всі необхідні виджети і створений макет форми, залишається створити з'єднання|сполучення,сполуки| сигналів і слотів. Це можна зробити уручну|вручну| за допомогою функції connect(), але|та| в Qt Designer є простий і ефективний спосіб — утиліта з'єднання|сполучення,сполуки| (Connection Tool). Для її запуску або натисніть|натискуйте| кнопку на панелі інструментів (на ній намальована червона стрілка і зелений прямокутник), або виберіть пункт меню Tools => Connect Signals/Slots, або просто натисніть|натискуйте| F3. Щоб створити з'єднання|сполучення,сполуку|, клацніть|лусніть| на виджете|, з|із| яким повинен взаємодіяти слот, перетягніть лінію, що з'явилася|появилася|, на форму і відпустіть кнопку миші.
Спочатку займемося кнопкою Create!. Клацніть|лусніть| на значку Connect Signal/Slot, виберіть відповідний пункт з|із| меню Tools або натисніть|натискуйте| F3. Потім клацніть|лусніть| на кнопці Create! і перетягнете лінію за межі форми. Коли ви відпустите кнопку миші, на екрані з'явиться|появиться| діалог, показаний на мал. 17.
Нам потрібно створити слот (не забувайте, що слот — це функція), який виводитиме підпис при натисненні кнопки Create!. Сигнал, який буде виданий при натисненні кнопки, називається clicked() (для виджета| QPushButton існує п'ять сигналів), і нам потрібно створити для нього слот і з'єднання|сполучення,сполука|.
Щоб створити слот, клацніть|лусніть| на кнопці "Edit Slots". З'явиться|появиться| вікно створення|створіння| слота (див. мал. 16). Клацніть|лусніть| на кнопці New Slot і в списку з'явиться|появиться| новий слот. Замість new_slot() введіть|запровадьте| slotCreateSig(). У випадному списку Access повинне стояти значення public. Коли ви натиснете|натискуватимете| ОК|, ви повернетеся до діалогу View and Edit Connections, де в списку слотів побачите тільки що створений.
Мал. 16: Створення слота
Мал. 17: Діалог перегляду|проглядання| і редагування з'єднань|сполучень,сполук|
Щоб створити з'єднання|сполучення,сполуку|, потрібно просто вибрати потрібний сигнал (у нашому випадку — clicked()) і слот (створений нами slotCreateSig()). Коли ви вибрали сигнал і слот, ви побачите, що зліва|ліворуч| з'явиться|появиться| зелена галочка. Тепер натисніть|натискуйте| ОК|.
Повторіть ту ж операцію для кнопки Cancel, використовуючи сигнал clicked() і слот close(). На цьому створення|створіння| сигналів і слотів завершене.
Увага
Не забудьте зберегти форму!