Russian Qt Forum

Qt => Общие вопросы => Тема начата: unkeep от Ноябрь 04, 2015, 14:39



Название: [РЕШЕНО] QTimer::singleShot
Отправлено: unkeep от Ноябрь 04, 2015, 14:39
Код
C++ (Qt)
 
connect(timer, SIGNAL(timeout()), this, SLOT(someSlot()));
connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()));
 

гарантирован ли вызов слота someSlot() до удаления объекта timer?

или может быть кто-нибудь знает, как проще по аналогии с QTimer::singleShot вызвать через промежуток времени любую функцию(не задекларированную как слот), в том числе и лямбду.


Название: Re: QTimer::singleShot
Отправлено: Racheengel от Ноябрь 04, 2015, 15:18
гарантирован ли вызов слота someSlot() до удаления объекта timer?

Да. Из ассистанта:

If a signal is connected to several slots, the slots are activated in the same order in which the connections were made, when the signal is emitted.

или может быть кто-нибудь знает, как проще по аналогии с QTimer::singleShot вызвать через промежуток времени любую функцию(не задекларированную как слот), в том числе и лямбду.

QtConcurrent::run()


Название: Re: QTimer::singleShot
Отправлено: unkeep от Ноябрь 04, 2015, 15:24
спасибо. Всё просто оказывается)