Strict knowledge of subset of properties involved in a userdefined script



  • Hello,

    I've a QScriptvalue m_ParametersObject containing a set of properties/double P1,P2...Pn
    I want the user to define formula in a QTextEdit where a formula is a relation between a choice of parameters

    ex: Let the parametersObject contain p1..p5.
    The user defines the followinf formula in a textEdit : "p5 = p2+p4"
    I need to know that p2 and p4 are involved in the forumla and that p1 and p3 are not involved.

    @
    void AddFormulaDialog::formulaChanged() // textEdit slot
    {
    QString formula = ui->textEdit->toPlainText();
    QScriptEngine * engine = m_ParametersObject->engine();
    // m_ParametersObject is a QScriptValue, with parameters as properties p1, p2...pn
    QScriptContext * context = engine->pushContext();
    context->setActivationObject(*m_ParametersObject);
    QScriptValue res = engine->evaluate(formula);

    QPushButton * okButton = ui->buttonBox->button(QDialogButtonBox::Ok);
    okButton->setEnabled(!res.isError());
    
    engine->popContext(); 
    

    }
    @

    With this, I can get the analytical formula and the evaluation, but not the topological information: I don't know which parameters are actually involved int the relation.

    QScriptValueIterator doesn't help here:
    QScriptValueIterator it(*m_ParametersObject) gives me all properties of the context (not only of the formula)
    QScriptValueIterator it(res) gives nothing.

    Is there a way (even completely different), to strictly retrieve the set of properties involved in the interactively user defined formula?

    Note: I'm new to QtScript

    Thank you in advance
    Laurent


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.