Я хочу вызвать слот MyWidget
class MyWidget : public QWidget {
Q_OBJECT
public slots:
void onFooBar(const std::string&);/*std::string& could also be replaced
by a QString for easier meta system handling*/
};
Но поскольку в моем случае boost::asio
используется, с потоками, я не хочу ничего делать с Qt, я хочувызвать этот слот из потока, отличного от основного потока, но случайного потока, который я не контролирую.(Конечно, из одного потока я запускаю boost::asio
)
Как я могу это сделать?QCoreApplication::postEvent
кажется хорошим выбором, но в документах не указано, как создать необходимый QEvent
.QMetaObject::invokeMethod
с Qt::QueuedConnection
тоже неплохо, но не документировано как поточно-безопасное.
Так как я могу безопасно вызвать слот qt из потока, не управляемого qt?
(Хотя название Boost asio с Qt предполагает, что это может быть дубликатом, вопрос кажется мне совершенно другим, эти вопросы не обязательно связаны с boost::asio
)