使用QScriptEngine计算计算

时间:2013-06-27 10:19:38

标签: c++ qt calculus

我正在创建一个将Items连接到Tasks的图表建模工具。项目具有Properties(简单名称/值关系),任务具有Formulas。我打算为用户生成一个UI,使用C ++语法(即QLineEdit)在(property1 * property2)/property3 公式中编写,然后输出结果。当然,必须以某种方式解析和计算公式以输出结果。

我对此的担忧是,使用QScriptEngine是否合适。我seen that it can be used使用evaluate()执行计算。除了4个“常规”操作(+, - ,*和/)之外,我只预计可能需要sqrt()pow() - 但显然,Math也可以在评估字符串。

另外,我需要存储和恢复这些公式,所以我考虑将它们作为QStrings用于此目的,因为我需要在文件中写入/读取它们

你认为这是一个好方法吗?对于这类目标,你有什么建议?

1 个答案:

答案 0 :(得分:1)

是的,这种方法很好。我用它来完成类似的任务。请注意,QScriptEngine使用JavaScript语法,而不是C ++语法。但JavaScript语法功能强大,可满足用户定义公式的常规需求。它支持常规运算符,数学函数,括号,局部变量等。

您可以在QString中存储公式。如果需要多次执行相同的公式,则应在执行前使用QScriptProgram编译公式。