Seite 1 von 1
Cobra Web Browser
Verfasst: Donnerstag 11. August 2011, 20:24
von BLU3L30PARD
Hey Leute!
Jetzt habe auch mal ein Python - Projekt, bei dem es sich lohnt, es vorzustellen

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)
Re: Cobra Web Browser
Verfasst: Freitag 12. August 2011, 02:01
von Dauerbaustelle
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.
Re: Cobra Web Browser
Verfasst: Freitag 12. August 2011, 20:02
von BLU3L30PARD
cbx ist meine Abkürzung für
Check
Bo
x 
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
Und danke für deine Tipps, das nehme ich mir zu Herzen und das mit dem
Actions-Dict wäre wirklich gut...

Re: Cobra Web Browser
Verfasst: Freitag 12. August 2011, 20:08
von Dauerbaustelle
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.
Re: Cobra Web Browser
Verfasst: Freitag 12. August 2011, 20:58
von BlackJack
Und nicht immer `settings_` schreiben zu wollen, ist in Zeiten wo selbst einfachere Texteditoren Autovervollständigung anbieten, auch kein besonders zugkräftiges Argument.
Re: Cobra Web Browser
Verfasst: Samstag 13. August 2011, 09:30
von /me
BLU3L30PARD hat geschrieben:cbx ist meine Abkürzung für
Check
Bo
x 
[...]
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,
Re: Cobra Web Browser
Verfasst: Donnerstag 18. August 2011, 17:09
von 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.
Re: Cobra Web Browser
Verfasst: Freitag 19. August 2011, 07:09
von /me
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.

Re: Cobra Web Browser
Verfasst: Samstag 4. Februar 2012, 10:11
von python_freak
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