<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Toshe and Tanya's blog &#187; Qt</title>
	<atom:link href="http://toshe.bukov.com/blog/index.php/post/tag/qt/feed" rel="self" type="application/rss+xml" />
	<link>http://toshe.bukov.com/blog</link>
	<description>Toshe and Tanya's thoughts about Life, the Universe and Everything</description>
	<lastBuildDate>Mon, 19 Oct 2009 12:10:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Направи си сам&#8230; уеб браузър</title>
		<link>http://toshe.bukov.com/blog/index.php/post/2008/05/26/130</link>
		<comments>http://toshe.bukov.com/blog/index.php/post/2008/05/26/130#comments</comments>
		<pubDate>Mon, 26 May 2008 16:33:04 +0000</pubDate>
		<dc:creator>Toshe</dc:creator>
				<category><![CDATA[Life, the Universe and Everything]]></category>
		<category><![CDATA[The matrix world]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://toshe.bukov.com/blog/index.php/post/2008/05/26/130</guid>
		<description><![CDATA[Въпреки че ежедневно се занимавам с компютри и съм свикнал с бурното развитие на технологииите, все още има неща в бранша, които ме смайват. Ето например последната версия на библиотеката за програмиране QT 4.4 (произнася се като англииското &#8220;cute&#8221; &#8211; приятен). Едно от новите въведения е реализирането на WebKit &#8211; модулен интернет браузър (е не [...]]]></description>
			<content:encoded><![CDATA[<p>Въпреки че ежедневно се занимавам с компютри и съм свикнал с бурното развитие на технологииите, все още има неща в бранша, които ме смайват. Ето например <a href="http://doc.trolltech.com/4.4/qt4-4-intro.html">последната версия</a> на библиотеката за програмиране <a href="http://trolltech.com/products/qt/">QT</a> <a href="http://doc.trolltech.com/4.4/index.html">4.4 </a> (произнася се като англииското &#8220;cute&#8221; &#8211; приятен). Едно от новите въведения е реализирането на <a href="http://en.wikipedia.org/wiki/Webkit">WebKit</a> &#8211; модулен интернет браузър (е не мога да се насиля преведа тая дума като &#8220;четец&#8221; и това си е!). Още след като бяха пуснати библиотеките <a href="http://wiki.python.org/moin/PyQt">PyQT </a>за връзка между <a href="http://www.python.org/">Python</a> и Qt 4.4 започнах да се човъркам из кода и за по-малко от два часа (толкова ми отпусна Жорката докато спеше обедния си сън) успях да спретна един много елементарен браузер. Само за сравнение &#8211; новата версия на <a href="http://en.wikipedia.org/wiki/Firefox_3#Version_3.0">Firefox 3</a> отне повече от година и половина. Естествено няма място за сравнение на няколко набързо нахвърлени реда код и гигантското постижение което е новия Firefox, но все пак дава перспектива.<br />
Ето как изглежда програмката в действие:</p>
<p><a href='http://toshe.bukov.com/blog/wp-content/uploads/2008/05/pyqt_webkit_test_screenshot_windows.png' title='Toshe Bukov’s PyQt WebKit example'><img src='http://toshe.bukov.com/blog/wp-content/uploads/2008/05/pyqt_webkit_test_screenshot_windows.thumbnail.png' alt='Toshe Bukov’s PyQt WebKit example' /></a></p>
<p>А по-долу е кода на главната програма (webkit_test.py) и на визуалната част (т.нар. GUI &#8211; Graphical User Interface) &#8211; (Ui_webkit_test.py). Графиния интерфейс е проектиран с <a href="http://doc.trolltech.com/4.4/designer-manual.html">QtDesigner </a>а за редактор съм използал <a href="http://www.die-offenbachs.de/eric/index.html">Eric4</a>. За сваляне на кода &#8211; ето на този адрес: <a href="http://toshe.bukov.com/download/toshe_bukov_pyqt_4.4_webkit_example_ver._0.6.zip">http://toshe.bukov.com/download/toshe_bukov_pyqt_4.4_webkit_example_ver._0.6.zip</a>.</p>
<p><span id="more-130"></span><br />
<strong>webkit_test.py</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># -*- coding: utf-8 -*-</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Author: Toshe Bukov (toshe[at]bukov[dot]com)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Licence: GNU GPL version 3 or later (http://www.gnu.org/licenses/gpl-3.0.html)</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># This example can be seen at http://toshe.bukov.com/blog/index.php/post/2008/05/26/130</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">Module implementing MainWindow.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">from</span> PyQt4 <span class="kw1">import</span> QtGui, QtCore, QtWebKit</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">from</span> PyQt4.<span class="me1">QtGui</span> <span class="kw1">import</span> QMainWindow</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">from</span> PyQt4.<span class="me1">QtCore</span> <span class="kw1">import</span> pyqtSignature</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">from</span> Ui_webkit_test <span class="kw1">import</span> Ui_MainWindow</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> MainWindow<span class="br0">&#40;</span>QMainWindow, Ui_MainWindow<span class="br0">&#41;</span>:</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;This class implements the container window that consists of address bar, button and</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;web page renderer.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, parent = <span class="kw2">None</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;Class constructor.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; QMainWindow.<span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, parent<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">setupUi</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">loadingURL</span> = <span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#self.setWindowTitle(&quot;PyQt4.4 WebKit browser demo&quot;)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @pyqtSignature<span class="br0">&#40;</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> on_urlBar_returnPressed<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;This method is invoked when Enter/Return keyboard key is pressed.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; urlText = <span class="kw2">str</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">urlBar</span>.<span class="me1">text</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">lower</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> urlText.<span class="me1">startswith</span><span class="br0">&#40;</span><span class="st0">&quot;http://&quot;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; urlText = <span class="st0">&quot;http://&quot;</span> + urlText</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">loadingURL</span> = urlText</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; urlAddress = QtCore.<span class="me1">QUrl</span><span class="br0">&#40;</span>urlText<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">webView</span>.<span class="me1">load</span><span class="br0">&#40;</span>urlAddress<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; @pyqtSignature<span class="br0">&#40;</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> on_goButton_clicked<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;This method is invoked when &quot;</span>Go<span class="st0">&quot; button is clicked. </span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">on_urlBar_returnPressed</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @pyqtSignature<span class="br0">&#40;</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> on_webView_loadStarted<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;QT invokes this method when page is being loaded in WebKit widget.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">statusbar</span>.<span class="me1">showMessage</span><span class="br0">&#40;</span><span class="st0">&quot;Loading &quot;</span> + <span class="kw2">self</span>.<span class="me1">loadingURL</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @pyqtSignature<span class="br0">&#40;</span><span class="st0">&quot;bool&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">def</span> on_webView_loadFinished<span class="br0">&#40;</span><span class="kw2">self</span>, p0<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;&quot;</span><span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;This method is invoked when page load is complete.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp;&quot;</span><span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">statusbar</span>.<span class="me1">showMessage</span><span class="br0">&#40;</span><span class="st0">&quot;Done. (&quot;</span> + <span class="kw2">self</span>.<span class="me1">webView</span>.<span class="me1">url</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">toString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> + <span class="st0">&quot;)&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> __name__ == <span class="st0">&quot;__main__&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; app = QtGui.<span class="me1">QApplication</span><span class="br0">&#40;</span><span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mw = MainWindow<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; mw.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">sys</span>.<span class="me1">exit</span><span class="br0">&#40;</span>app.<span class="me1">exec_</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p><strong>Ui_webkit_test.py</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># -*- coding: utf-8 -*-</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Form implementation generated from reading ui file &#8216;webkit_test.ui&#8217;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Created: Mon May 26 15:53:38 2008</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp; &nbsp;by: PyQt4 UI code generator 4.4.2</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Author: Toshe Bukov (toshe[at]bukov[dot]com)</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1"># Licence: GNU GPL version 3 or later (http://www.gnu.org/licenses/gpl-3.0.html)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># This example can be seen at http://toshe.bukov.com/blog/index.php/post/2008/05/26/130</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">from</span> PyQt4 <span class="kw1">import</span> QtCore, QtGui</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> Ui_MainWindow<span class="br0">&#40;</span><span class="kw2">object</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> setupUi<span class="br0">&#40;</span><span class="kw2">self</span>, MainWindow<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MainWindow.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;MainWindow&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MainWindow.<span class="me1">resize</span><span class="br0">&#40;</span><span class="nu0">800</span>,<span class="nu0">600</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">centralwidget</span> = QtGui.<span class="me1">QWidget</span><span class="br0">&#40;</span>MainWindow<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">centralwidget</span>.<span class="me1">setGeometry</span><span class="br0">&#40;</span>QtCore.<span class="me1">QRect</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">27</span>,<span class="nu0">800</span>,<span class="nu0">548</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">centralwidget</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;centralwidget&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">verticalLayout</span> = QtGui.<span class="me1">QVBoxLayout</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">centralwidget</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">verticalLayout</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;verticalLayout&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">horizontalLayout</span> = QtGui.<span class="me1">QHBoxLayout</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">horizontalLayout</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;horizontalLayout&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">urlBar</span> = QtGui.<span class="me1">QLineEdit</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">centralwidget</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">urlBar</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;urlBar&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">horizontalLayout</span>.<span class="me1">addWidget</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">urlBar</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">goButton</span> = QtGui.<span class="me1">QPushButton</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">centralwidget</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">goButton</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;goButton&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">horizontalLayout</span>.<span class="me1">addWidget</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">goButton</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">verticalLayout</span>.<span class="me1">addLayout</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">horizontalLayout</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">webView</span> = QtWebKit.<span class="me1">QWebView</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">centralwidget</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">webView</span>.<span class="me1">setUrl</span><span class="br0">&#40;</span>QtCore.<span class="me1">QUrl</span><span class="br0">&#40;</span><span class="st0">&quot;about:blank&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">webView</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;webView&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">verticalLayout</span>.<span class="me1">addWidget</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">webView</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MainWindow.<span class="me1">setCentralWidget</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">centralwidget</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menubar</span> = QtGui.<span class="me1">QMenuBar</span><span class="br0">&#40;</span>MainWindow<span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menubar</span>.<span class="me1">setGeometry</span><span class="br0">&#40;</span>QtCore.<span class="me1">QRect</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">0</span>,<span class="nu0">800</span>,<span class="nu0">27</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menubar</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;menubar&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menuFile</span> = QtGui.<span class="me1">QMenu</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">menubar</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menuFile</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;menuFile&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MainWindow.<span class="me1">setMenuBar</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">menubar</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">statusbar</span> = QtGui.<span class="me1">QStatusBar</span><span class="br0">&#40;</span>MainWindow<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">statusbar</span>.<span class="me1">setGeometry</span><span class="br0">&#40;</span>QtCore.<span class="me1">QRect</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">575</span>,<span class="nu0">800</span>,<span class="nu0">25</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">statusbar</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;statusbar&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MainWindow.<span class="me1">setStatusBar</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">statusbar</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">actionExit</span> = QtGui.<span class="me1">QAction</span><span class="br0">&#40;</span>MainWindow<span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">actionExit</span>.<span class="me1">setObjectName</span><span class="br0">&#40;</span><span class="st0">&quot;actionExit&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menuFile</span>.<span class="me1">addAction</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">actionExit</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menubar</span>.<span class="me1">addAction</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">menuFile</span>.<span class="me1">menuAction</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">retranslateUi</span><span class="br0">&#40;</span>MainWindow<span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; QtCore.<span class="me1">QObject</span>.<span class="me1">connect</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">actionExit</span>,QtCore.<span class="me1">SIGNAL</span><span class="br0">&#40;</span><span class="st0">&quot;triggered()&quot;</span><span class="br0">&#41;</span>,MainWindow.<span class="me1">close</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; QtCore.<span class="me1">QMetaObject</span>.<span class="me1">connectSlotsByName</span><span class="br0">&#40;</span>MainWindow<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> retranslateUi<span class="br0">&#40;</span><span class="kw2">self</span>, MainWindow<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; MainWindow.<span class="me1">setWindowTitle</span><span class="br0">&#40;</span>QtGui.<span class="me1">QApplication</span>.<span class="me1">translate</span><span class="br0">&#40;</span><span class="st0">&quot;MainWindow&quot;</span>, <span class="st0">&quot;Python QT4.4 Webkit test&quot;</span>, <span class="kw2">None</span>, QtGui.<span class="me1">QApplication</span>.<span class="me1">UnicodeUTF8</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">goButton</span>.<span class="me1">setText</span><span class="br0">&#40;</span>QtGui.<span class="me1">QApplication</span>.<span class="me1">translate</span><span class="br0">&#40;</span><span class="st0">&quot;MainWindow&quot;</span>, <span class="st0">&quot;Go&quot;</span>, <span class="kw2">None</span>, QtGui.<span class="me1">QApplication</span>.<span class="me1">UnicodeUTF8</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">menuFile</span>.<span class="me1">setTitle</span><span class="br0">&#40;</span>QtGui.<span class="me1">QApplication</span>.<span class="me1">translate</span><span class="br0">&#40;</span><span class="st0">&quot;MainWindow&quot;</span>, <span class="st0">&quot;File&quot;</span>, <span class="kw2">None</span>, QtGui.<span class="me1">QApplication</span>.<span class="me1">UnicodeUTF8</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">actionExit</span>.<span class="me1">setText</span><span class="br0">&#40;</span>QtGui.<span class="me1">QApplication</span>.<span class="me1">translate</span><span class="br0">&#40;</span><span class="st0">&quot;MainWindow&quot;</span>, <span class="st0">&quot;Exit&quot;</span>, <span class="kw2">None</span>, QtGui.<span class="me1">QApplication</span>.<span class="me1">UnicodeUTF8</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &#8212; uncomment below code to test the GUI code</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">#from PyQt4 import QtWebKit</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#if __name__ == &quot;__main__&quot;:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp;import sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp;app = QtGui.QApplication(sys.argv)</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1"># &nbsp; &nbsp;MainWindow = QtGui.QMainWindow()</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp;ui = Ui_MainWindow()</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp;ui.setupUi(MainWindow)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp;MainWindow.show()</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># &nbsp; &nbsp;sys.exit(app.exec_())</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://toshe.bukov.com/blog/index.php/post/2008/05/26/130/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

