QString variable to Javascript: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Cleanup)
(Sub-categorize; it's also a HowTo)
Line 1: Line 1:
{{LangSwitch}}
{{LangSwitch}}
[[Category:snippets]]
[[Category::HowTo]]
[[Category:Developing_with_Qt::QtWebKit]]
[[Category:Snippets::Misc]]
[[Category:Developing with Qt::QtWebKit]]
Small snippet showing how to call two javascript functions, one without any param, and one with a QString param…
Small snippet showing how to call two javascript functions, one without any param, and one with a QString param…



Revision as of 12:07, 28 November 2016

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

[[Category::HowTo]] 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>
 <head>
 <script type="text/javascript">
 
 function displaymessage(str)
 {
   alert(str);
 }

 function displayhello()
 {
   alert("Hello");
 }
 
 </script>
 </head>

 <body>
   <form>
     <input type="button" value="Click me!">
   </form>
 </body>
</html>

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);