void Calculator::customButtonClicked()
{
QToolButton *clickedButton = qobject_cast<QToolButton *>(sender());
QFile file(clickedButton->property("scriptFileName").toString());
if (!file.open(QIODevice::ReadOnly)) {
abortOperation();
return;
}
QTextStream in(&file);
in.setCodec("UTF-8");
QString script = in.readAll();
file.close();
QScriptEngine interpreter;
QScriptValue operand(&interpreter, display->text().toDouble());
interpreter.globalObject().setProperty("x", operand);
QScriptValue result = interpreter.evaluate(script);
if (!result.isNumber()) {
abortOperation();
return;
}
setDisplayValue(result.toNumber());
waitingForOperand = true;
}
从QScriptValue operand(&interpreter, display->text().toDouble());
这里 operand的值就为空了,查看QScriptValue的构造函数没有参数是两个的构造函数。。。