connect - сделать вызов одноразовым, сигналы и слоты |
Здравствуйте, гость ( Вход | Регистрация )
connect - сделать вызов одноразовым, сигналы и слоты |
AD |
8.10.2009, 9:45
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Вот есть такой connect. Как сделать так, чтобы этот вызов делался один раз? Ну то-есть необходимо определить, что уже соединение слота и сигнала совершено и вторично делать не следует! Но конечно же, чтобы была возможность, после отсоединения (disconnect) подсоединить еще раз! |
|
|
kwisp |
8.10.2009, 10:57
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
слушай такая бредовая идея.
е если завести объект класса
и соединить triggered() с transmite() а transmite с prevEventAction то можно попробовать управлять вызовом prevEventAction с помощью blockSignals blockSignals естественно объекта Transmitter Как именно это сделать? если ты имеешь ввиду управление флагом. то не сложно. пусть в классе есть установленный изначально в флаг=0 в слоте проверяешь если 0, то выполняешь слот, если 1 то выходишь из слота, в конце слота устанавливаешь в 1. перед первым выполнением флаг будет в 0, после первого в 1. если надо чтоб следующий вызов слота сработал устанавливаешь флаг в 0. ну естественно можно еще sender использовать чтоб знать что сработало соединение а не простой вызов слота как метода. |
|
|
AD |
8.10.2009, 11:02
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
слушай такая бредовая идея. ... соединить triggered() с transmite() а transmite с prevEventAction то можно попробовать управлять вызовом prevEventAction с помощью blockSignals blockSignals естественно объекта Transmitter Не путай меня! По-моему, это "путь из Москвы в Париж через Нью-Йорк"! если ты имеешь ввиду управление флагом. то не сложно. пусть в классе есть установленный изначально в флаг=0 в слоте проверяешь если 0, то выполняешь слот, если 1 то выходишь из слота, в конце слота устанавливаешь в 1. перед первым выполнением флаг будет в 0, после первого в 1. если надо чтоб следующий вызов слота сработал устанавливаешь флаг в 0. ну естественно можно еще sender использовать чтоб знать что сработало соединение а не простой вызов слота как метода. ммм. А примерчик можно? Непонятно значение этого флага, если в конце слота значение обнуляется. Что за sender()? Заранее спасибо. Сообщение отредактировал AD - 8.10.2009, 11:05 |
|
|
Текстовая версия | Сейчас: 27.12.2024, 9:49 |