Qt: альтернатива QMetaObject :: invokeMethod - PullRequest
0 голосов
/ 27 мая 2020

В Qt я часто использую что-то вроде QMetaObject::invokeMethod(this, "myMethod", Q_ARG(bool, foo)) (по сути, это приводит к тому, что вызов метода + аргументы ставятся в очередь и позже выполняются в правильной очереди событий).

Есть ли способ использовать метод ссылки вместо использования имени метода в виде строки (т. е. использовать &MyClass::myMethod вместо "myMethod"), при этом выполнение все еще стоит в очереди?

1 Ответ

1 голос
/ 27 мая 2020

Начиная с Qt 5.10 существует две QMetaObject :: invokeMethod перегрузки, которые принимают функтор или указатель на функцию-член в качестве аргумента.

Внутри одного потока вы можете использовать Функтор приема перегрузки QTimer :: singleShot (начиная с Qt 5.4) и использовать таймаут в 0 миллисекунд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...