Russian Qt Forum
Май 06, 2024, 01:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: слоты и сигналы  (Прочитано 2397 раз)
StatuS74
Гость
« : Август 09, 2011, 07:03 »

Возник вопрос. есть класс в котором есть метод  который запускаю в потом. метод в процессе работы проверяет условия и надо чтобы  при определенных  условиях выводилось сообщение MessageBox. Понял что надо использовать сигналы. но  технологию не совсем понял. в книге говарится для испускания сигнала делается так connect(отправитель,SIgnal(сигнал),получатель,slot(слот)).
подскажите пожалусто как отправить сигнал что бы вывелось сообщения.
Записан
merke
Гость
« Ответ #1 : Август 09, 2011, 07:41 »

в своем классе декларируешь сигнал:

Код:
void mySignal();

теперь когда тебе нужно испустить сигнал, пишешь
Код:
emit mySignal();

а также у тебя должен быть слот с твоим месагбоксом, допустим:

Код:
vodi myClass::showMess()
{
  ..........Выводишь месагбокс............
}
теперь делаешь связку твоего сигнала и слота с месагбоксов:

Код:
connect(myClass, SIGNAL(mySignal()), this, SLOT(showMess()));

и получается следующее: когда испускается сигнал mySignal вызывается слот showMess() и показывается твой месагбокс. и везге где тебе нужно показать твоё сообщение делай
Код:
emit mySignal();
Записан
StatuS74
Гость
« Ответ #2 : Август 09, 2011, 07:58 »

а мне надо передать  ещё переменную. типо что бы вывелось Ошибка бля бля для сериника serial
serial QString

что то тпио
connect(myClass, SIGNAL(mySignal(serial)), this, SLOT(showMess()))
« Последнее редактирование: Август 09, 2011, 08:07 от StatuS74 » Записан
StatuS74
Гость
« Ответ #3 : Август 09, 2011, 08:20 »

и в каком месте программы я связку должен сделать  ??
Записан
Странник
Гость
« Ответ #4 : Август 09, 2011, 09:14 »

почитайте повнимательнее, примеры посмотрите. вопрос фундаментальный, но слишком простой, чтобы здесь на него отвечать.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #5 : Август 09, 2011, 11:27 »

а мне надо передать  ещё переменную. типо что бы вывелось Ошибка бля бля для сериника serial
serial QString
connect(myClass, SIGNAL(mySignal(QString)), this, SLOT(showMess(QString)), Qt::QueuedConnection);
В объявлении соответственно тоже добавить аргумент и в сигнал и в слот.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.