Редактирование: Сигналы и слоты (Qt)
Материал из Wiki.crossplatform.ru
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 11: | Строка 11: | ||
* указатель на объект-получатель | * указатель на объект-получатель | ||
* слот объекта-получателя | * слот объекта-получателя | ||
- | |||
- | При соединении | + | При соединении сигнало в и слотов можно передавать параметры от сигнала к слоту, если существует сответствующая пара сигнал/слот. |
=== Без параметров === | === Без параметров === | ||
- | + | {{code|qt|code= | |
- | QPushButton | + | QPushButton btn_quit = new QPushButton("Quit",wgt); |
... | ... | ||
QObject::connect(btn_quit, SIGNAL(clicked()), qApp, SLOT(quit())); | QObject::connect(btn_quit, SIGNAL(clicked()), qApp, SLOT(quit())); | ||
- | + | }} | |
В этом примере сигнал [[Qt:Документация_4.3.2/qabstractbutton#clicked|clicked()]] от кнопки '''btn_quit''' соеденяется со слотом [[Qt:Документация_4.3.2/qcoreapplication#quit|quit()]] приложения (qApp - глобальный указатель на экземпляр приложения) | В этом примере сигнал [[Qt:Документация_4.3.2/qabstractbutton#clicked|clicked()]] от кнопки '''btn_quit''' соеденяется со слотом [[Qt:Документация_4.3.2/qcoreapplication#quit|quit()]] приложения (qApp - глобальный указатель на экземпляр приложения) | ||
Строка 26: | Строка 25: | ||
При соединении сигналов и слотов с передачей параметров следует помнить замечание указанное в описании к [[Qt:Документация_4.3.2/qobject#connect|QObject::connect()]]. Т.е. имена аргументов должны быть опущены. | При соединении сигналов и слотов с передачей параметров следует помнить замечание указанное в описании к [[Qt:Документация_4.3.2/qobject#connect|QObject::connect()]]. Т.е. имена аргументов должны быть опущены. | ||
- | + | Неправильно: | |
- | + | {{code|qt|code= | |
QObject::connect(scrollBar, SIGNAL(valueChanged(int value)), label, SLOT(setNum(int value))); | QObject::connect(scrollBar, SIGNAL(valueChanged(int value)), label, SLOT(setNum(int value))); | ||
- | + | }} | |
Правильно: | Правильно: | ||
- | + | {{code|qt|code= | |
QObject::connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int))); | QObject::connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int))); | ||
- | + | }} | |
- | В этом примере сигнал [[Qt:Документация_4.3.2/qabstractslider#valueChanged|valueChanged()]] от линейки прокрутки '''scrollBar''' соеденяется со слотом [[Qt:Документация_4.3.2/qlabel#setNum-2|setNum()]] текстовой метки '''label'''. Сигнал передает параметр типа ''int'' - текущая позиция ползунка. Слот метки имеет такой же тип входного аргумента | + | В этом примере сигнал [[Qt:Документация_4.3.2/qabstractslider#valueChanged|valueChanged()]] от линейки прокрутки '''scrollBar''' соеденяется со слотом [[Qt:Документация_4.3.2/qlabel#setNum-2|setNum()]] текстовой метки '''label'''. Сигнал передает параметр типа ''int'' - текущая позиция ползунка. Слот метки имеет такой же тип входного аргумента. После соединения этой пары сигнал/слот. При изменении положения ползунка в текстовой метке будет отбражатся текущая позиция ползунка. |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
== Объявление собственных сигналов и слотов == | == Объявление собственных сигналов и слотов == | ||
- | |||
- | |||
- |