| |
Сигналы и слоты |
Создание приложения |
Сигналы и слоты используются для связи между объектами 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, где в списке слотов увидите только что созданный.
Рис. 17: Диалог просмотра и редактирования соединений
Чтобы создать соединение, нужно просто выбрать нужный сигнал (в нашем случае — clicked()) и слот (созданный нами slotCreateSig()). Когда вы выбрали сигнал и слот, вы увидите, что слева появится зеленая галочка. Теперь нажмите ОК.
Повторите ту же операцию для кнопки Cancel, используя сигнал clicked() и слот close(). На этом создание сигналов и слотов завершено.
Создание промежутков между виджетами |
Написание кода |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |