Здравствуйте, гость ( Вход | Регистрация )
kwisp | Дата 8.10.2009, 11:10 |
Не путай меня! По-моему, это "путь из Москвы в Париж через Нью-Йорк"! отвечу словами героя "нашей раши" - не очкуй, славик, я сто раз так делал. ну если серьезно я же написал что бредовая идея. просто взять готовое и не заморачиваться. А примерчик можно? Непонятно значение этого флага, если в конце слота значение обнуляется наверное я не умею объяснять. псевдокод Раскрывающийся текст
Что за sender()? вот тут ты меня испугал. QObject::sender(); |
|
AD | Дата 8.10.2009, 11:02 |
слушай такая бредовая идея. ... соединить triggered() с transmite() а transmite с prevEventAction то можно попробовать управлять вызовом prevEventAction с помощью blockSignals blockSignals естественно объекта Transmitter Не путай меня! По-моему, это "путь из Москвы в Париж через Нью-Йорк"! если ты имеешь ввиду управление флагом. то не сложно. пусть в классе есть установленный изначально в флаг=0 в слоте проверяешь если 0, то выполняешь слот, если 1 то выходишь из слота, в конце слота устанавливаешь в 1. перед первым выполнением флаг будет в 0, после первого в 1. если надо чтоб следующий вызов слота сработал устанавливаешь флаг в 0. ну естественно можно еще sender использовать чтоб знать что сработало соединение а не простой вызов слота как метода. ммм. А примерчик можно? Непонятно значение этого флага, если в конце слота значение обнуляется. Что за sender()? Заранее спасибо. |
|
kwisp | Дата 8.10.2009, 10:57 |
слушай такая бредовая идея. е если завести объект класса
и соединить triggered() с transmite() а transmite с prevEventAction то можно попробовать управлять вызовом prevEventAction с помощью blockSignals blockSignals естественно объекта Transmitter Как именно это сделать? если ты имеешь ввиду управление флагом. то не сложно. пусть в классе есть установленный изначально в флаг=0 в слоте проверяешь если 0, то выполняешь слот, если 1 то выходишь из слота, в конце слота устанавливаешь в 1. перед первым выполнением флаг будет в 0, после первого в 1. если надо чтоб следующий вызов слота сработал устанавливаешь флаг в 0. ну естественно можно еще sender использовать чтоб знать что сработало соединение а не простой вызов слота как метода. |
|
AD | Дата 8.10.2009, 10:43 |
В примитиве можно connect/disconnect делать в специальных функциях, где использовать флаги. А есть поэлегантнее способ? Или это единственная возможность? AD, можно в слоте prevEventAction проверять кто sender и отсоединять прям там. лучше соединить один раз а флагом регулировать выполнять слот или нет. Как именно это сделать? |
|
kwisp | Дата 8.10.2009, 10:39 |
AD, можно в слоте prevEventAction проверять кто sender и отсоединять прям там. но я бы не баловался с соединением и рассоединением. лучше соединить один раз а флагом регулировать выполнять слот или нет. |
|
BRE | Дата 8.10.2009, 10:01 |
Вот есть такой connect. Как сделать так, чтобы этот вызов делался один раз? Ну то-есть необходимо определить, что уже соединение слота и сигнала совершено и вторично делать не следует! Но конечно же, чтобы была возможность, после отсоединения (disconnect) подсоединить еще раз! В примитиве можно connect/disconnect делать в специальных функциях, где использовать флаги.
|
|
AD | Дата 8.10.2009, 9:45 |
Вот есть такой connect. Как сделать так, чтобы этот вызов делался один раз? Ну то-есть необходимо определить, что уже соединение слота и сигнала совершено и вторично делать не следует! Но конечно же, чтобы была возможность, после отсоединения (disconnect) подсоединить еще раз! |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 23.1.2025, 12:40 |