1 2 void wrapInFunction() 3 { 4 5 //! [0] 6 // ... 7 QWebFrame *frame = myWebPage->mainFrame(); 8 frame->addToJavaScriptWindowObject("someNameForMyObject", myObject); 9 // ... 10 //! [0] 11 #if 0 12 //! [1] 13 { 14 width: ..., 15 height: ..., 16 toDataURL: function() { ... }, 17 assignToHTMLImageElement: function(element) { ... } 18 } 19 //! [1] 20 #endif 21 //! [2] 22 class MyObject : QObject { 23 Q_OBJECT 24 Q_PROPERTY(QPixmap myPixmap READ getPixmap) 25 26 public: 27 QPixmap getPixmap() const; 28 }; 29 30 /* ... */ 31 32 MyObject myObject; 33 myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject); 34 35 //! [2] 36 #if 0 37 //! [3] 38 <html> 39 <head> 40 <script> 41 function loadImage() 42 { 43 myObject.myPixmap.assignToHTMLImageElement(document.getElementById("imageElement")); 44 } 45 </script> 46 </head> 47 <body onload="loadImage()"> 48 <img id="imageElement" width="300" height="200" /> 49 </body> 50 </html> 51 //! [3] 52 #endif 53 //! [4] 54 class MyObject : QObject { 55 Q_OBJECT 56 57 public slots: 58 void doSomethingWithWebElement(const QWebElement&); 59 }; 60 61 /* ... */ 62 63 MyObject myObject; 64 myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject); 65 66 //! [4] 67 #if 0 68 //! [5] 69 <html> 70 <head> 71 <script> 72 function runExample() { 73 myObject.doSomethingWithWebElement(document.getElementById("someElement")); 74 } 75 </script> 76 </head> 77 <body onload="runExample()"> 78 <span id="someElement">Text</span> 79 </body> 80 </html> 81 //! [5] 82 //! [6] 83 connect(function); 84 //! [6] 85 //! [7] 86 function myInterestingScriptFunction() { ... } 87 ... 88 myQObject.somethingChanged.connect(myInterestingScriptFunction); 89 //! [7] 90 //! [8] 91 myQObject.somethingChanged.connect(myOtherQObject.doSomething); 92 //! [8] 93 //! [9] 94 myQObject.somethingChanged.disconnect(myInterestingFunction); 95 myQObject.somethingChanged.disconnect(myOtherQObject.doSomething); 96 //! [9] 97 //! [10] 98 myQObject.somethingChanged.connect(thisObject, function) 99 //! [10] 100 //! [11] 101 var form = { x: 123 }; 102 var onClicked = function() { print(this.x); }; 103 myButton.clicked.connect(form, onClicked); 104 //! [11] 105 //! [12] 106 myQObject.somethingChanged.disconnect(thisObject, function); 107 //! [12] 108 //! [13] 109 connect(function); 110 //! [13] 111 //! [14] 112 myQObject.somethingChanged.connect(thisObject, "functionName") 113 //! [14] 114 //! [15] 115 var obj = { x: 123, fun: function() { print(this.x); } }; 116 myQObject.somethingChanged.connect(obj, "fun"); 117 //! [15] 118 //! [16] 119 connect(function); 120 //! [16] 121 //! [17] 122 myQObject.somethingChanged.disconnect(thisObject, "functionName"); 123 //! [17] 124 //! [18] 125 try { 126 myQObject.somethingChanged.connect(myQObject, "slotThatDoesntExist"); 127 } catch (e) { 128 print(e); 129 } 130 //! [18] 131 //! [19] 132 myQObject.somethingChanged("hello"); 133 //! [19] 134 //! [20] 135 myQObject.myOverloadedSlot(10); // will call the int overload 136 myQObject.myOverloadedSlot("10"); // will call the QString overload 137 //! [20] 138 //! [21] 139 myQObject['myOverloadedSlot(int)']("10"); // call int overload; the argument is converted to an int 140 myQObject['myOverloadedSlot(QString)'](10); // call QString overload; the argument is converted to a string 141 //! [21] 142 //! [22] 143 class MyObject : public QObject 144 { 145 Q_OBJECT 146 147 public: 148 Q_INVOKABLE void thisMethodIsInvokableInJavaScript(); 149 void thisMethodIsNotInvokableInJavaScript(); 150 151 ... 152 }; 153 //! [22] 154 //! [23] 155 Q_PROPERTY(bool enabled READ enabled WRITE setEnabled) 156 //! [23] 157 //! [24] 158 myQObject.enabled = true; 159 160 ... 161 162 myQObject.enabled = !myQObject.enabled; 163 //! [24] 164 //! [25] 165 myDialog.okButton 166 //! [25] 167 //! [26] 168 myDialog.okButton 169 myDialog.okButton.objectName = "cancelButton"; 170 // from now on, myDialog.cancelButton references the button 171 //! [26] 172 #endif 173 } 174 175