Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. QScriptEngine

QScriptEngine

Scheduled Pinned Locked Moved Solved German
7 Posts 2 Posters 1.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    NotYourFan
    wrote on last edited by
    #1

    Guten morgen,

    folgender Sachverhalt:

    ich parse eine XML-Datei und lese hierbei "Calculations" aus.
    Mit QScriptEngine berechne ich dann die ausgelesene Formel aus meiner XML-Datei und schreibe diese in mein Tabelle in Qt.

    Nun muss ich aber einen vergleich durchführen.
    Das auslesen der Formel bzw des "vergleiches" ist überhaupt kein Problem.
    Ich weis leider nur nich wie ich mit QScriptEngine etwas vergleichen kann und ggf. dann "SCHLECHT" bei negativen vergleich und "GUT" bei positiven vergleich ausgeben kann.

    Mein Vergleich sieht folgendermaßen aus:

    (valuex * valuey) < valuez
    

    Jemand eine Idee wie ich das mit QScriptEngine hinbekommen kann?

    Gojir4G 1 Reply Last reply
    0
    • N NotYourFan

      Guten morgen,

      folgender Sachverhalt:

      ich parse eine XML-Datei und lese hierbei "Calculations" aus.
      Mit QScriptEngine berechne ich dann die ausgelesene Formel aus meiner XML-Datei und schreibe diese in mein Tabelle in Qt.

      Nun muss ich aber einen vergleich durchführen.
      Das auslesen der Formel bzw des "vergleiches" ist überhaupt kein Problem.
      Ich weis leider nur nich wie ich mit QScriptEngine etwas vergleichen kann und ggf. dann "SCHLECHT" bei negativen vergleich und "GUT" bei positiven vergleich ausgeben kann.

      Mein Vergleich sieht folgendermaßen aus:

      (valuex * valuey) < valuez
      

      Jemand eine Idee wie ich das mit QScriptEngine hinbekommen kann?

      Gojir4G Offline
      Gojir4G Offline
      Gojir4
      wrote on last edited by
      #2

      @NotYourFan

      QScriptValue fun = myEngine.evaluate("(function(x, y, z) { return (x * y) < z  }");
      QScriptValueList args;
      args << valuex << valuey << valuez;
      QScriptValue result = fun.call(QScriptValue(), args);
      bool res = result.toBool();
      
      1 Reply Last reply
      1
      • N Offline
        N Offline
        NotYourFan
        wrote on last edited by
        #3

        So eine ähnliche Lösung habe ich auch :)
        Danke dir, das bestätigt mir schon mal das ich auf dem richtigen weg bin.

        QString Ergebnis;
        bool vergleich = false
        QScriptEngine = engine; 
        vergleich = engine.evaluate("(x*y) < z)".toBool(); 
        qDebug() << vergleich // "true"
        
        

        meine frage jetzt:
        Muss ich mit if meinen Text selber setzen oder kann das QScriptEninge schon selber?
        Ich würde jetzt intuitiv wie folgt vorgehen:

        if (vergleich) 
        {
        ergebnis = "GUT"
        }
        else
        {
        ergebnis = "SCHLECHT"
        }
        
        Gojir4G 1 Reply Last reply
        0
        • N NotYourFan

          So eine ähnliche Lösung habe ich auch :)
          Danke dir, das bestätigt mir schon mal das ich auf dem richtigen weg bin.

          QString Ergebnis;
          bool vergleich = false
          QScriptEngine = engine; 
          vergleich = engine.evaluate("(x*y) < z)".toBool(); 
          qDebug() << vergleich // "true"
          
          

          meine frage jetzt:
          Muss ich mit if meinen Text selber setzen oder kann das QScriptEninge schon selber?
          Ich würde jetzt intuitiv wie folgt vorgehen:

          if (vergleich) 
          {
          ergebnis = "GUT"
          }
          else
          {
          ergebnis = "SCHLECHT"
          }
          
          Gojir4G Offline
          Gojir4G Offline
          Gojir4
          wrote on last edited by Gojir4
          #4

          @NotYourFan Ich bin nicht sicher, ob ich verstanden habe. Ich benutze Google Übersetzung. Das Ergebnis muss ein QString sein?

          QString Ergebnis = engine.evaluate("(x*y) < z) ? \"GUT\" : \"SCHLECHT\"").toString()
          

          Edit: Escape double quotes

          1 Reply Last reply
          1
          • N Offline
            N Offline
            NotYourFan
            wrote on last edited by
            #5

            Ja genau so will ich es haben.
            Aber so wie du es schreibst funktioniert es nicht weil es mehrere Strings sind.

            QString Ergebnis = engine.evaluate("(x*y) < z) ? "GUT" : "SCHLECHT").toString()
            

            Yes i Need exactly this what you write.
            The Problem is that i get an error because there are to many Strings.

            Gojir4G 1 Reply Last reply
            0
            • N NotYourFan

              Ja genau so will ich es haben.
              Aber so wie du es schreibst funktioniert es nicht weil es mehrere Strings sind.

              QString Ergebnis = engine.evaluate("(x*y) < z) ? "GUT" : "SCHLECHT").toString()
              

              Yes i Need exactly this what you write.
              The Problem is that i get an error because there are to many Strings.

              Gojir4G Offline
              Gojir4G Offline
              Gojir4
              wrote on last edited by
              #6

              @NotYourFan Sorry I was not awake this morning. I have edited my answer with escaped quotes

              1 Reply Last reply
              2
              • N Offline
                N Offline
                NotYourFan
                wrote on last edited by
                #7

                Thank you so mutch !!!!!

                1 Reply Last reply
                2

                • Login

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups
                • Search
                • Get Qt Extensions
                • Unsolved