qtwebkit_bridge_snippets.cpp [plain text]
void wrapInFunction()
{
QWebFrame *frame = myWebPage->mainFrame();
frame->addToJavaScriptWindowObject("someNameForMyObject", myObject);
#if 0
{
width: ...,
height: ...,
toDataURL: function() { ... },
assignToHTMLImageElement: function(element) { ... }
toImageData: function() { ... }
}
#endif
class MyObject : QObject {
Q_OBJECT
Q_PROPERTY(QPixmap myPixmap READ getPixmap)
public:
QPixmap getPixmap() const;
};
MyObject myObject;
myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject);
#if 0
<html>
<head>
<script>
function loadImage()
{
myObject.myPixmap.assignToHTMLImageElement(document.getElementById("imageElement"));
var context = document.getElementById("canvasElement").getContext("2d");
context.putImageData(myObject.myPixmap.toImageData());
}
</script>
</head>
<body onload="loadImage()">
<img id="imageElement" width="300" height="200" />
<canvas id="canvasElement" width="300" height="200" />
</body>
</html>
#endif
class MyObject : QObject {
Q_OBJECT
public slots:
void doSomethingWithWebElement(const QWebElement&);
};
MyObject myObject;
myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject);
#if 0
<html>
<head>
<script>
function runExample() {
myObject.doSomethingWithWebElement(document.getElementById("someElement"));
}
</script>
</head>
<body onload="runExample()">
<span id="someElement">Text</span>
</body>
</html>
connect(function);
function myInterestingScriptFunction() { ... }
...
myQObject.somethingChanged.connect(myInterestingScriptFunction);
myQObject.somethingChanged.connect(myOtherQObject.doSomething);
myQObject.somethingChanged.disconnect(myInterestingFunction);
myQObject.somethingChanged.disconnect(myOtherQObject.doSomething);
myQObject.somethingChanged.connect(thisObject, function)
var form = { x: 123 };
var onClicked = function() { print(this.x); };
myButton.clicked.connect(form, onClicked);
myQObject.somethingChanged.disconnect(thisObject, function);
connect(function);
myQObject.somethingChanged.connect(thisObject, "functionName")
var obj = { x: 123, fun: function() { print(this.x); } };
myQObject.somethingChanged.connect(obj, "fun");
connect(function);
myQObject.somethingChanged.disconnect(thisObject, "functionName");
try {
myQObject.somethingChanged.connect(myQObject, "slotThatDoesntExist");
} catch (e) {
print(e);
}
myQObject.somethingChanged("hello");
myQObject.myOverloadedSlot(10); myQObject.myOverloadedSlot("10"); myQObject['myOverloadedSlot(int)']("10"); myQObject['myOverloadedSlot(QString)'](10); class MyObject : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE void thisMethodIsInvokableInJavaScript();
void thisMethodIsNotInvokableInJavaScript();
...
};
Q_PROPERTY(bool enabled READ enabled WRITE setEnabled)
myQObject.enabled = true;
...
myQObject.enabled = !myQObject.enabled;
myDialog.okButton
myDialog.okButton
myDialog.okButton.objectName = "cancelButton";
#endif
}