
maillist@moevy.net schrieb:
ich beschäftige mich seit einigen Wochen schon mit Python. Nun suche ich eine grafische Oberfläche. Welche ist denn sehr gut Dokumentiert? wxpython ist leider nur sehr mau dokumentiert. Noch eine Frage, wie speichert Ihr Daten ab? In einer MySQL Datenbank?
Hi Michael! Da stellst hier ein Glaubensfrage, auf die ich dir nur mit Stichworten antworten kann. pyQT - scheint nicht schlecht zu sein, aber sobald du für dein Programm auch nur einen Cent bezahlt bekommen möchtest, will Trolltec Geld. Und das nicht wenig. TkInter - einfach und wird meist mit Python mitinstalliert. Leider sind die Möglichkeiten mit TkInter recht eingeschränkt. Einfache Oberflächen sind kein Problem, aber wenn es mehr sein sollte, würde ich es nicht nehmen. pyGTK - in Ansätzen, einfach zu programmieren. Die Dokumentation ist spitze. Aber, es fehlen ein paar Dinge, wie z.B. ein Grid-Widget. Es wurde dem TreeView-Widget sehr viel Macht verliehen. Man kann damit fast alles machen wie z.B. eine Listenansicht, oder eine Baumansicht... Leider gibt deshalb aber auch kein *einfaches* Listen-Widgets oder ein *einfaches* TreeView-Widget. MDI-Fenster sind mit GTK nicht oder nur schwer zu erstellen. (GTK war bis jetzt mein Favorit.) wxPython - Ist nicht so schlecht dokumentiert, wie du glaubst. Auf der wxPython-Website findest du einiges an Material. Die Demo ist auch nicht ohne. Wenn du dir die mal ansiehst, dann siehst du, was alles möglich ist und hast auch schon ein Codebeispiel dafür. Es enthält bereits Objekte, die für das Drucken und eine Druckvorschau verwendet werden können (plattformübergreifend :-) ). Ein funktionierendes Grid-Widget ist auch mit dabei. Es gibt ziemlich viele, einfach zu verwendende, Widgets. Man muss sich also nicht aus einem, sehr mächtigen, Widget alles selber zusammenbasteln, sondern verwendet für jede "einfache Sache" auch ein "einfaches Widget". Das Beste daran ist, dass diese Widgets sowohl unter Windows wie auch unter Linux super aussehen. (wxPython wird wahrscheinlich mein Favorit werden, da die Möglichkeiten wirklich nicht schlecht sind.) Und jetzt zum Speichern: Python macht es einem sehr einfach, Daten als einfache Textdatei ins Dateisystem zu speichern. Es gibt **nichts schnelleres**, um ein *paar* Daten abzuspeichern und wieder darauf zuzugreifen. Der Nachteil an diesem System ist aber, wenn sich die gewünschte Information in einer größeren Datei befindet, dann muss Python zuerst die ganze Datei laden um auf die Information zugreifen zu können. Wenn eine Datei alle Daten enthält und diese Datei nur einmal eingelesen werden muss, dann ist eine einfache Textdatei an Geschwindigkeit nicht zu unterschätzen. - einfache Textdatei - einfache Textdatei mit Struktur --> pyYAML (YAML), XMarshaL (XML) oder optparse (INI) Noch schneller geht es, wenn du kein Textformat sondern ein Binärformat verwendest. Zu diesem Thema siehst du dir am besten "Pickle" an. Aber auch bei einem normalen Binärformat ist es immer noch so, dass die gesamte Datei eingelesen werden muss, um zu den Daten zu kommen. Ausgenommen du hast ein ausgeklügeltes System, mit dem du dir merkst, wo genau in der Binärdatei sich die gewünschten Daten befinden. Dann wären wir aber beim Thema Datenbanken, das ich weiter unten erkläre. Wenn du also viel Daten hast, auf die du nicht im Ganzen, sondern meistens nur teilweise zugreifen möchtest, dann bist du mit einer Datenbank gut beraten. Bei Datenbanken ist es meist so, dass ein Serverdienst im Hintergrund auf Anfragen von einem Programm wartet. Dieser Serverdienst ist normalerweise darauf optimiert, aus vielen Daten, wenig Informationen herauszufischen. Das können Datenbanksysteme wirklich gut. Wenn du aber sehr viele Informationen auf einmal haben möchtest, dann ist von einer Datenbank abzuraten. Diese sind nicht darauf optimiert. Es gibt eine kleine Datenbankschnittstelle, die mit wenig Daten und auch mit mittelgroßem Datenaufkommen gut klar kommt --> pySQLite. pySQLite kannst du verwenden, wenn du mit SQL gut klar kommst und in deinem Programm deine Daten gerne mit SQL verwalten möchtest. Ein paar hundert Megabyte sollten für pySQLite kein Problem darstellen. Sollten aber mehrere Programme bzw. Computer auf die gleichen Daten, evt. sogar gleichzeitig, zugreifen können, dann empfehle ich dir einen richtigen Datenbankdienst wie z.B. PostgreSQL oder MySQL. MySQL ist schnell und einfach. PostgreSQL ist wahrscheinlich nicht so schnell wie MySQL, kann aber mehr und ist auf Serverebene besser programmierbar. (z.B. gespeicherte Prozeduren, Beziehungen zwischen Tabellen, Views, Trigger, ...) Willst du einen stabilen Datenbankserver, dann verwende PostgreSQL, denn meine Warenwirtschaft würde ich MySQL NICHT anvertrauen. Das MySQL, welches unter kommerzieller Lizenz steht, ist zwar etwas besser, aber dafür kostet es auch Geld. mfg Gerold :-) -- ________________________________________________________________________ Gerold Penz - bcom - Programmierung gerold.penz@tirol.utanet.at | http://gerold.bcom.at | http://sw3.at Ehrliche, herzliche Begeisterung ist einer der wirksamsten Erfolgsfaktoren. Dale Carnegie _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de