Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

 

Рабочая среда KDE

Сигналы и слоты

Назад

Создание приложения

  Далее

Сигналы и слоты

Сигналы и слоты используются для связи между объектами 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(). На этом создание сигналов и слотов завершено.

Внимание

Не забудьте сохранить форму!

Назад

Содержание

Далее

Создание промежутков между виджетами 

На уровень вверх

 Написание кода