mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 21:15:33 +08:00
Ref T486 Using QMetaObject::invokeMethod with pointer-to-member-function (or functor).
This commit is contained in:
@@ -54,7 +54,7 @@ namespace BlackMisc
|
||||
template <typename F>
|
||||
void singleShot(int msec, QObject *target, F &&task)
|
||||
{
|
||||
QSharedPointer<QTimer> timer(new QTimer, [](QObject * o) { QMetaObject::invokeMethod(o, "deleteLater"); });
|
||||
QSharedPointer<QTimer> timer(new QTimer, [](QObject * o) { QMetaObject::invokeMethod(o, &QObject::deleteLater); });
|
||||
timer->setSingleShot(true);
|
||||
timer->moveToThread(target->thread());
|
||||
QObject::connect(timer.data(), &QTimer::timeout, target, [trace = getStackTrace(), task = std::forward<F>(task), timer]() mutable
|
||||
@@ -63,7 +63,7 @@ namespace BlackMisc
|
||||
timer.clear();
|
||||
task();
|
||||
});
|
||||
QMetaObject::invokeMethod(timer.data(), "start", Q_ARG(int, msec));
|
||||
QMetaObject::invokeMethod(timer.data(), [t = timer.data(), msec] { t->start(msec); });
|
||||
}
|
||||
//! @}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user