• 5899阅读
  • 3回复

疑问:第22章 应用程序脚本 calculator例子 问题 [复制链接]

上一主题 下一主题
离线wookoon
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-17
第22章 应用程序脚本这章的 calculator这个例子运行cube 等三个个按钮,界面都显示 ####
而非书上所说的
离线wookoon

只看该作者 1楼 发表于: 2010-05-17
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的构造函数没有参数是两个的构造函数。。。
离线wookoon

只看该作者 2楼 发表于: 2010-05-17
整了一下午。。。
这个例子的解决办法:
js里面去掉return ...
离线cubetan

只看该作者 3楼 发表于: 2011-05-05
我今天也遇到这个问题,包括后面的htmlwindow
就上这里来看看,呵呵,果然发现有了提了
为什么要去掉return呢?
快速回复
限100 字节
 
上一个 下一个