Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPO_SRS.doc
Скачиваний:
5
Добавлен:
02.05.2019
Размер:
1.06 Mб
Скачать

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(). На цьому створення|створіння| сигналів і слотів завершене.

Увага

Не забудьте зберегти форму!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]