Cobra Web Browser

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
BLU3L30PARD
User
Beiträge: 26
Registriert: Freitag 20. August 2010, 19:31

Hey Leute!

Jetzt habe auch mal ein Python - Projekt, bei dem es sich lohnt, es vorzustellen :D
Und zwar habe ich mich an einem Web Browser versucht, Namens "Cobra".
Das ganze habe ich realisiert mit Python 2.7.2 und PyQt 4.8.4 (Qt 4.7.2).

0.5 ist die aktuelle Version.
Bisher sind nur standardfunktionen implementiert, also Tabs, Cache, etc.
Was noch fehlt ist eine unterstützung für Cookies, sowie ein Download Manager.
Außerdem folgen noch Functionen wie: Drucken, Seite speichern, etc.
Das tolle an Cobra ist, dass er portabel ist. Gespeichert werden die
Einstellungen in einer "Settings.ini".

Geht nicht allzu kritisch an das ganze ran, schließlich ist das noch ein relativ
junges Projekt und es fehlen noch ein paar Funktionen ;)
Dennoch sind Lob, Kritik und Tipps erwünscht :)

Schaut euch Cobra doch mal an! :)
Hier geht's zur Projektseite auf meiner Homepage: (KLICK)
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

MainWindows.py, Z81ff: kannst du ersetzen mit

Code: Alles auswählen

self.action_OpenFile.setEnabled(self.tabWidget.HasCurrent)
self.action_CloseTab.setEnabled(self.tabWidget.HasCurrent)
# ...
Damit fällt das `if`-Konstrukt weg. Und das sieht ja immer noch ziemlich grausam aus, deswegen könnte man das auch so formulieren:

Code: Alles auswählen

for action in {'OpenFile', 'CloseTab', ...}:
    getattr(self, 'action_%s' % action).setEnabled(self.tabWidget.hasCurrent)
Vielleicht solltest du die vielen `action_*`-Variablen aber auch einfach durch ein `actions`-Dictionary ersetzen.


SettingsWindow.py, Z63ff: das lässt sich formulieren als

Code: Alles auswählen

styles = ['Common', 'Plastique', 'GTK', ...]
self.cbx_uiStyle.setCurrentIndex(styles.index(self.stng_UIStyle)
Die Variablen darin sind übrigens totaler Müll. Was heißt bittesehr `cbx`? Und was `stng`? Abkürzungen gehen gar nicht. Ich muss anhand des Namens einer Variable wissen, was sie speichert, ohne den Rest des Codes gelesen zu haben. Das geht aber mit solchen Abkürzungen nicht.


Ansonsten mal PEP8 angucken.
BLU3L30PARD
User
Beiträge: 26
Registriert: Freitag 20. August 2010, 19:31

cbx ist meine Abkürzung für CheckBox ;)
stng = Setting ;)
Mir wurde beigebracht, wenn man viele Variablen hat, soll man so
mit Prefixen arbeiten. Und ich möchte nicht immer setting_<name>
schreiben müssen. Auf dauer nervt das, was Variablennnamen angeht,
bin ich schreibfaul :D

Und danke für deine Tipps, das nehme ich mir zu Herzen und das mit dem
Actions-Dict wäre wirklich gut... :D
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Dann hat dir jemand Müll beigebracht. Man sollte niemals an den Punkt gelangen, überhaupt so viele Variablen zu haben, dass es ohne Prefixe unübersichtlich würde -- bzw. wenn es wird weiß man dass Refactoring angesagt ist.
BlackJack

Und nicht immer `settings_` schreiben zu wollen, ist in Zeiten wo selbst einfachere Texteditoren Autovervollständigung anbieten, auch kein besonders zugkräftiges Argument.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

BLU3L30PARD hat geschrieben:cbx ist meine Abkürzung für CheckBox ;)
[...]
Mir wurde beigebracht, wenn man viele Variablen hat, soll man so
mit Prefixen arbeiten.
Das ist die Ungarische Notation die Charles Simonyi vor langen Jahren bei Microsoft eingeführt hat (schau dir mal die API von Windows 3.0 an). Eine gewisse Zeit wurde das mit Begeisterung verwendet (lpsz = Long Pointer String Zero-terminated), inzwischen ist aber selbst Microsoft davon wieder abgekommen - und das aus gutem Grund,
lunar

@/me: Ursprünglich dachte der Erfinder dieser Notation aber auch an etwas wie "settings_" und nicht an Typpräfixe. Die kamen erst später, und waren vom Erfinder so nicht angedacht.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

lunar hat geschrieben:@/me: Ursprünglich dachte der Erfinder dieser Notation aber auch an etwas wie "settings_" und nicht an Typpräfixe.
Zumindest hat er deutlich später mal behauptet, dass er es so wie es verwendet wurde nicht gemeint hat. :-)
python_freak
User
Beiträge: 16
Registriert: Sonntag 22. August 2010, 09:06
Wohnort: Mein Zimmer
Kontaktdaten:

Ich hab mir deinen WebBrowser mal runtergeladen(ich muss mir erstmal PyQt4 installieren). Ich habe mir die .exe version runtergeladen. Aber wenn ich das Programm starte kommt bei mir eine Fehlermeldung. "Cobra.exe ist keine zulässige Win32 Anwendung". Kann mir vielleicht jemand erklären was das bedeutet und iwe ich das Problem behoben kriege. Im Internet habe ich dazu nichts gefunden.

Vielen Dank
Benito
Antworten