0

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

我对此的担忧是使用QScriptEngine是否适合于此。我已经看到它可以用于使用evaluate(). 除了 4 个“常规”操作(+、-、* 和 /)之外,我只预计可能需要sqrt()并且pow()可能需要 - 但显然,Math也可以在评估字符串中使用。

此外,我需要存储和恢复这些公式,因此我正在考虑QStrings为此目的处理它们,因为我需要将它们写入/读取文件。

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

4

1 回答 1

1

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

您可以将公式存储在QString. 如果您需要多次执行同一个公式,您应该QScriptProgram在执行之前使用编译一个公式。

于 2013-06-27T10:57:11.213 回答