На этом шаге продолжим рассматривать пример создания диалогового окна поиска.
Теперь мы рассмотрим слоты диалогового окна.
//Слот findClicked() вызывается при нажатии пользователем кнопки Найти далее void FindDialog::findClicked() { QString text = lineEdit->text(); Qt::CaseSensitivity cs = caseCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive; //Генерирует сигнал findPrevious() или findNext() в зависимости от состояния //флажка Искать вверх. Ключевое слово emit (генерировать сигнал) //имеет особый смысл в Qt; как и другие расширения Qt, оно преобразуется //препроцессором C++ в стандартные инструкции C++ if (backwardCheckBox->isChecked()) { emit findPrevious(text, cs); } else { emit findNext(text, cs); } } //Слот enableFindButton() вызывается при любом изменении значения в строке //редактирования. Он устанавливает активный режим кнопки, если в //редактируемой строке имеется какой-нибудь текст; в противном случае кнопка //устанавливается в неактивный режим void FindDialog::enableFindButton(const QString &text) { findButton->setEnabled(!text.isEmpty()); }
Эти два слота завершают написание программы диалогового окна.
На следующем шаге продолжим рассматривать пример создания диалогового окна поиска.