Сигналы и слоты (Qt)

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
(Соединение сигналов и слотов)
м (Соединение сигналов и слотов)
Строка 12: Строка 12:
* слот объекта-получателя
* слот объекта-получателя
 +
При соединении сигнало в и слотов можно передавать параметры от сигнала к слоту, если существует сответствующая пара сигнал/слот.
=== Без параметров ===
=== Без параметров ===
-
например:
 
{{code|qt|code=
{{code|qt|code=
QPushButton btn_quit = new QPushButton("Quit",wgt);
QPushButton btn_quit = new QPushButton("Quit",wgt);
Строка 20: Строка 20:
QObject::connect(btn_quit, SIGNAL(clicked()), qApp, SLOT(quit()));
QObject::connect(btn_quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}}
}}
-
 
+
В этом примере сигнал clicked() от кнопки соеденяется со слотом quit() приложения
=== С параметрами ===
=== С параметрами ===
== Объявление собственных сигналов и слотов ==
== Объявление собственных сигналов и слотов ==

Версия 14:45, 27 декабря 2008

Библиотека Qt предоставляет гибкую систему уведомления и обмена данными между объектами. Эта система реализуется посредством концепции сигналов и слотов.

Содержание

Соединение сигналов и слотов

Соединение сигналов и слотов осуществляется:

  1. В классах наследниках от QObject функцией connect().
  2. В прочих местах программы с помощью статической функциии-члена QObject::connect()

Аргументами этой функции являются:

  • указатель на объект-отправитель
  • сигнал объекта-отправителя
  • указатель на объект-получатель
  • слот объекта-получателя

При соединении сигнало в и слотов можно передавать параметры от сигнала к слоту, если существует сответствующая пара сигнал/слот.

Без параметров

QPushButton btn_quit = new QPushButton("Quit",wgt);
...
QObject::connect(btn_quit, SIGNAL(clicked()), qApp, SLOT(quit()));

В этом примере сигнал clicked() от кнопки соеденяется со слотом quit() приложения

С параметрами

Объявление собственных сигналов и слотов