import os import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtWebKit import * from PyQt4.QtNetwork import * __version__ = "0.1 20091002" __appname__ = "minibrowser" TITLE = "%s %s" % (__appname__, __version__) HOMEPAGE = "http://example.com/" HISTORY = os.path.join(os.path.dirname(sys.argv[0]), "%s.log" % (__appname__)) class BrowserWidget(QWidget): def __init__(self, datpath, parent=None): super(self.__class__, self).__init__(parent) self.browser = QWebView() self.lineedit = QLineEdit() layout = QVBoxLayout() layout.setSpacing(0) layout.setMargin(0) layout.addWidget(self.lineedit) layout.addWidget(self.browser) self.setLayout(layout) self.lineedit.setFocus() self.connect(self.lineedit, SIGNAL("returnPressed()"), self.entrytext) self.browser.load(QUrl(HOMEPAGE)) self.browser.show() def entrytext(self): self.browser.load(QUrl(self.lineedit.text())) class Window(QMainWindow): def __init__(self, histlogpath, parent=None): super(self.__class__, self).__init__(parent) self.browserWindow = BrowserWidget(histlogpath) self.setCentralWidget(self.browserWindow) self.setWindowTitle(TITLE) status = self.statusBar() status.setSizeGripEnabled(True) self.label = QLabel("") status.addWidget(self.label, 1) self.connect(self.browserWindow.browser, SIGNAL("loadFinished(bool)"), self.loadFinished) self.connect(self.browserWindow.browser, SIGNAL("loadProgress(int)"), self.loading) self.histlogpath = histlogpath def loadFinished(self, flag): """SLOT of load finished. """ self.label.setText("Done") open(self.histlogpath, 'a').write(self.browserWindow.browser.url().toString() + "\n") def loading(self, percent): """SLOT of loading progress. """ self.label.setText("Loading %d%%" % percent) self.browserWindow.lineedit.setText(self.browserWindow.browser.url().toString()) if __name__ == '__main__': QNetworkProxy.setApplicationProxy(QNetworkProxy(QNetworkProxy.HttpProxy, "proxy.example.com", 8080)) app = QApplication(sys.argv) window = Window(HISTORY) window.show() app.exec_()