该程序的目的是从用户输入(我使用QLineEdit
)中获取公式并绘制公式(使用QT的QCustomPlot
)。这是我遇到的代码的一部分:
QVector<double> x(10000), y(10000);
for (int i=0; i<10000; ++i)
{
double xi = ui->xi_LineEdit->text().toDouble();
x[i] = xi;
double yi = ui->yi_LineEdit->text().toDouble();
y[i] = yi;
}
ui->grafiek->addGraph();
ui->grafiek->graph(0)->setData(x, y);
此代码显然现在不起作用。如何通过示例xi = i/50.0 - 20
和yi = x[i]*x[i]
以及 Process IT?
QLineEdit
为您提供了一个包含数学表达式的QString
。这种类型不能转换为double
,除非它只包含双重。例如,文本" 10.34"可以从QString转换为双重,但是文本" 10.34-18 2"不能首先进行评估。
您需要将qlineedit文本传递给数学表达式解析器。如果您只需要处理简单的算术,则可以编写自己的文章。这是一个值得的学习练习,您可以在网上找到许多示例,包括So。如果您需要更复杂的解析,或者很着急,则可以使用C++ math parser
或类似代码的Google Google。