Hier das Hauptprogramm des Browsers:
#!/usr/bin/env python
import sys, os
import re
from PyQt4 import QtCore, QtGui
from Ui_MainWindow import Ui_MainWindow
def main():
app = QtGui.QApplication(sys.argv)
QtGui.QApplication.setApplicationName("PyQtBrowser")
MainWindow = BrowserWindow()
MainWindow.show()
sys.exit(app.exec_())
class BrowserWindow(QtGui.QMainWindow):
"""The main window of the PyQtBrowser application."""
def __init__(self, *args):
QtGui.QMainWindow.__init__(self, *args)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setWindowTitle("PyQtBrowser")
self.initSignals()
def initSignals(self):
QtCore.QObject.connect(self.ui.lineeditAddress, QtCore.SIGNAL("returnPressed()"), self.loadPage)
QtCore.QObject.connect(self.ui.webviewMain, QtCore.SIGNAL("urlChanged(const QUrl&)"), self.updateUrl)
QtCore.QObject.connect(self.ui.commandBack, QtCore.SIGNAL("clicked()"), self.ui.webviewMain.back)
QtCore.QObject.connect(self.ui.commandForward, QtCore.SIGNAL("clicked()"), self.ui.webviewMain.forward)
QtCore.QObject.connect(self.ui.commandReload, QtCore.SIGNAL("clicked()"), self.ui.webviewMain.reload)
def updateUrl(self, url):
self.ui.lineeditAddress.setText(url.toString())
def loadPage(self):
stringUrl = unicode(self.ui.lineeditAddress.text())
if not re.search(r"^http", stringUrl):
stringUrl = "http://" +stringUrl
url = QtCore.QUrl(stringUrl)
self.ui.webviewMain.load(url)
self.ui.lineeditAddress.clearFocus()
main()
Zu diesem Programm gehört natürlich noch die GUI des Hauptfensters, die noch einmal einige Zeilen Code hinzufügt. Da die GUI in Qt aber mit dem Designer zusammengeklickt wird, handelt es sich streng genommen nicht um "programmierten Code": wir bleiben bei <40Zeilen...
Hier das Archiv mit allen nötigen Dateien: PyQtBrowser.zip
Zum Starten einfach die ZIP-Datei auspacken und den Browser per "python PyQtBrowser.py" starten. Läuft übrigens auch auf Maemo.
Keine Kommentare:
Kommentar veröffentlichen