void wrapInFunction()
{
//! [0]
// ...
QWebFrame *frame = myWebPage->mainFrame();
frame->addToJavaScriptWindowObject("someNameForMyObject", myObject);
// ...
//! [0]
#if 0
//! [1]
{
width: ...,
height: ...,
toDataURL: function() { ... },
assignToHTMLImageElement: function(element) { ... }
}
//! [1]
#endif
//! [2]
class MyObject : QObject {
Q_OBJECT
Q_PROPERTY(QPixmap myPixmap READ getPixmap)
public:
QPixmap getPixmap() const;
};
/* ... */
MyObject myObject;
myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject);
//! [2]
#if 0
//! [3]
<html>
<head>
<script>
function loadImage()
{
myObject.myPixmap.assignToHTMLImageElement(document.getElementById("imageElement"));
}
</script>
</head>
<body onload="loadImage()">
<img id="imageElement" width="300" height="200" />
</body>
</html>
//! [3]
#endif
//! [4]
class MyObject : QObject {
Q_OBJECT
public slots:
void doSomethingWithWebElement(const QWebElement&);
};
/* ... */
MyObject myObject;
myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject);
//! [4]
#if 0
//! [5]
<html>
<head>
<script>
function runExample() {
myObject.doSomethingWithWebElement(document.getElementById("someElement"));
}
</script>
</head>
<body onload="runExample()">
<span id="someElement">Text</span>
</body>
</html>
//! [5]
//! [6]
connect(function);
//! [6]
//! [7]
function myInterestingScriptFunction() { ... }
...
myQObject.somethingChanged.connect(myInterestingScriptFunction);
//! [7]
//! [8]
myQObject.somethingChanged.connect(myOtherQObject.doSomething);
//! [8]
//! [9]
myQObject.somethingChanged.disconnect(myInterestingFunction);
myQObject.somethingChanged.disconnect(myOtherQObject.doSomething);
//! [9]
//! [10]
myQObject.somethingChanged.connect(thisObject, function)
//! [10]
//! [11]
var form = { x: 123 };
var onClicked = function() { print(this.x); };
myButton.clicked.connect(form, onClicked);
//! [11]
//! [12]
myQObject.somethingChanged.disconnect(thisObject, function);
//! [12]
//! [13]
connect(function);
//! [13]
//! [14]
myQObject.somethingChanged.connect(thisObject, "functionName")
//! [14]
//! [15]
var obj = { x: 123, fun: function() { print(this.x); } };
myQObject.somethingChanged.connect(obj, "fun");
//! [15]
//! [16]
connect(function);
//! [16]
//! [17]
myQObject.somethingChanged.disconnect(thisObject, "functionName");
//! [17]
//! [18]
try {
myQObject.somethingChanged.connect(myQObject, "slotThatDoesntExist");
} catch (e) {
print(e);
}
//! [18]
//! [19]
myQObject.somethingChanged("hello");
//! [19]
//! [20]
myQObject.myOverloadedSlot(10); // will call the int overload
myQObject.myOverloadedSlot("10"); // will call the QString overload
//! [20]
//! [21]
myQObject['myOverloadedSlot(int)']("10"); // call int overload; the argument is converted to an int
myQObject['myOverloadedSlot(QString)'](10); // call QString overload; the argument is converted to a string
//! [21]
//! [22]
class MyObject : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE void thisMethodIsInvokableInJavaScript();
void thisMethodIsNotInvokableInJavaScript();
...
};
//! [22]
//! [23]
Q_PROPERTY(bool enabled READ enabled WRITE setEnabled)
//! [23]
//! [24]
myQObject.enabled = true;
...
myQObject.enabled = !myQObject.enabled;
//! [24]
//! [25]
myDialog.okButton
//! [25]
//! [26]
myDialog.okButton
myDialog.okButton.objectName = "cancelButton";
// from now on, myDialog.cancelButton references the button
//! [26]
#endif
}