QString variable to Javascript: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Add "cleanup" tag)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
[[Category:snippets]]
[[Category:snippets]]
[[Category:Developing_with_Qt::QtWebKit]]
[[Category:Developing_with_Qt::QtWebKit]]

Revision as of 16:23, 3 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Small snippet showing how to call two javascript functions, one without any param, and one with a QString param…

This is a simple html to test with

<html&amp;amp;gt;
 <head&amp;amp;gt;
 <script type="text/javascript">
 function displaymessage(str)
 {
 alert(str);
 }

function displayhello()
 {
 alert("Hello");
 }
 </script&amp;amp;gt;
 </head&amp;amp;gt;

<body&amp;amp;gt;
 <form&amp;amp;gt;
 <input type="button" value="Click me!">
 </form&amp;amp;gt;
 </body&amp;amp;gt;
</html&amp;amp;gt;

Now using the Designer, load this page to a QWebView in your mainwindow. And in the mainwindow.cpp

 QWebFrame *frame = ui->webView->page()->mainFrame();

 // the below line will call the javascript function that does not have any param
 frame->evaluateJavaScript("displayhello()");

// now this is how to call the javascript function which takes a QString param
 QString data("Qt is the Best!"); // can be some large data, say from a file

QString param = QString("displaymessage('%1')").arg(data); // FIXME: Does not work if "data" contains a quote character!
 frame->evaluateJavaScript(param);