Qt как перевести строку в функцию? - PullRequest
0 голосов
/ 13 февраля 2019

Можно ли перевести строку (QString) из литерала в функцию и вызвать ее?

Например, у меня есть строка, содержащая "clicked", я хочу перевести ее в функциюи назовите это, что-то вроде:

eval("clicked")()

1 Ответ

0 голосов
/ 13 февраля 2019

конечно вы можете: у вас есть на самом деле 2 варианта,

создать карту со строкой, функция.и получить значение по ключу и вызвать его

или (немного более сложный)

методы должны быть класса, который наследует класс QObject, а методы являются слотами или "invokable"функции,

и вам нужно использовать метод

QMetaObject :: invokeMethod ...

пример:

FOO::MyClass obj;
QMetaObject::invokeMethod(&obj, "foo", Qt::DirectConnection);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...