использование формулы из QString для вычисления в double

У меня есть некая функция, записанная в строке:

QString str="29+13-1"

Мне бы хотелось использовать её для вычисления, а так как я пришёл из питона, то решил, что всё очень просто и написал

double number;
number=mainstring.toDouble();

и получил

number=0;

а хотел бы, чтобы Qt принял это как

number=29+13-1;

и вывел ответом

number=41;

Объясните, как такое сделать.


Ответы (1 шт):

Автор решения: Илья Репнев

Благодаря коментария Alexander Chernin я смогл это сделать. Решение использовать QtScript а именно QScriptEngine отлично работает. Единственное что я бы хотел уточнить перед тем как ругаться что у вас не получается выполнить #include <QtScript/QScriptEngine> как это делал я(ругался), удостоверьтесь что у вас в .pro файле прописано QT+=script А самое главное что при установке Qt вы установили этот самый пакет QtScript если же нет то MaintenanceTool вам в помощь. Учтите что если вы пользовались оффлайн установщиком то вам придётся либо искать где скачать и как установить пакет вручную, либо переустонавливать Qt. Ещё раз спасибо Alexander Chernin за его наводку на stackoverflow.com/a/35416704/4711135.

→ Ссылка