Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Using QtWebKit in PyQt as a N00b

                                                   @tewson




          BarcampBangkok ...
WebKit

                          ●   Open Source Layout Engine
                              ●   Safari
                 ...
Qt


       ●   Open Source Application Framework
             ●   Google Earth
             ●   VLC
             ●   Skyp...
QtWebKit lets you...



   ●   Embed a Web browser in an application
   ●   Interact between Document Object Model
       ...
Dependencies




      sudo apt-get install python-qt4
       with libqt4-core and libqt4-webkit?




               Barca...
Let's Try...

       import sys
       from PyQt4.QtCore import *
       from PyQt4.QtGui import *
       from PyQt4.QtWeb...
Create Your Own Web Browser


     ●   Use QtDesigner to Create UI
     ●   Import UI to the Program
     ●   Connect Sign...
Run JavaScript



    web = QwebView()
    frame = web.page().mainFrame()
    frame.evaluateJavaScript(quot;alert('Hello, ...
Cross the Border
     x = QObject()
     x.setObjectName(quot;xquot;)
     x.setProperty(quot;fooquot;,QVariant(quot;quot;...
Injecting Firebug Lite
                                    * Use signals and slots to check first
                        ...
Injecting jQuery




 It's the same idea as injecting Firebug Lite.




               BarcampBangkok 3, Sripathum Univers...
Many More Interesting Examples at...


   http://labs.trolltech.com/blogs
   http://riverbankcomputing.com
   and Google, ...
Thanks




                                           @tewson
                                         tewson.com
BarcampB...
Upcoming SlideShare
Loading in …5
×

Using QtWebKit in PyQt as a N00b

11,032 views

Published on

Published in: Technology, Education

Using QtWebKit in PyQt as a N00b

  1. 1. Using QtWebKit in PyQt as a N00b @tewson BarcampBangkok 3, Sripathum University 1
  2. 2. WebKit ● Open Source Layout Engine ● Safari ● Google Chrome ● WebOS ● Epiphany ● Arora BarcampBangkok 3, Sripathum University 2
  3. 3. Qt ● Open Source Application Framework ● Google Earth ● VLC ● Skype BarcampBangkok 3, Sripathum University 3
  4. 4. QtWebKit lets you... ● Embed a Web browser in an application ● Interact between Document Object Model and other environment BarcampBangkok 3, Sripathum University 4
  5. 5. Dependencies sudo apt-get install python-qt4 with libqt4-core and libqt4-webkit? BarcampBangkok 3, Sripathum University 5
  6. 6. Let's Try... import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtWebKit import * app = QApplication(sys.argv) web = QWebView() web.load(QUrl(quot;http://barcampbangkok.orgquot;)) web.show() sys.exit(app.exec_()) BarcampBangkok 3, Sripathum University 6
  7. 7. Create Your Own Web Browser ● Use QtDesigner to Create UI ● Import UI to the Program ● Connect Signals and Slots: clicked(), urlChanged(), loadProgress(), etc. ● app.show()! BarcampBangkok 3, Sripathum University 7
  8. 8. Run JavaScript web = QwebView() frame = web.page().mainFrame() frame.evaluateJavaScript(quot;alert('Hello, World!');quot;) BarcampBangkok 3, Sripathum University 8
  9. 9. Cross the Border x = QObject() x.setObjectName(quot;xquot;) x.setProperty(quot;fooquot;,QVariant(quot;quot;)) x.setProperty(quot;barquot;,QVariant(quot;quot;)) frame.addToJavaScriptWindowObject(quot;xquot;,x) frame.evaluateJavaScript(quot;x.foo = 'foo'; x.bar = 5;quot;) print x.property(“foo”).toString() print x.property(“bar”).toInt() BarcampBangkok 3, Sripathum University 9
  10. 10. Injecting Firebug Lite * Use signals and slots to check first if the page has finished loading. * frame.evaluateJavaScript(quot;var firebug = document.createElement('script'); firebug.setAttribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite- compressed.js'); document.body.appendChild(firebug); (function() {if(window.firebug.version){firebug.init();} else {setTimeout(arguments.callee);}})(); void(firebug);quot;) Get this from Firebug Lite bookmarklet. http://getfirebug.com/lite.html BarcampBangkok 3, Sripathum University 10
  11. 11. Injecting jQuery It's the same idea as injecting Firebug Lite. BarcampBangkok 3, Sripathum University 11
  12. 12. Many More Interesting Examples at... http://labs.trolltech.com/blogs http://riverbankcomputing.com and Google, of course! BarcampBangkok 3, Sripathum University 12
  13. 13. Thanks @tewson tewson.com BarcampBangkok 3, Sripathum University 13

×