Ganz am Anfang

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

Hallo,

ich habe vor vielen Jahren ein wenig in dbase programmiert, recht umfangreiche Sachen und dies auch für die Verwendung in einer kleineren Firma. Unter WINXP laufen diese Dinge heute noch. Später dann in Delphi einige Gehversuche gemacht, mangels Zeit aber nicht weiter ausgedehnt.

Nun will ich aber mal im privaten Bereich wieder etwas tun, Grund ist der Abschied von Windows. Mittlerweile bin ich bei ubuntu angekommen.

Auf der Suche nach einer passenden Programmiersprache gefällt mir python recht gut, als Datenbank habe ich mysql oder sqlite im Blick. Mit SQL-Datenbanken habe ich schon öfters zu tun gehabt.

Nun habe ich ein bischen mit IDLE gespielt und QT4 installiert. Wie muß ich mir QT4 vorstellen? Das ist ja eher für die Programmierung in C++ gedacht, wie bringe ich dort python ins Spiel? Ich hoffe diese Frage ist nicht zu banal, ich möchte damit erst anfangen.

Hier: http://de.wikibooks.org/wiki/Python_unter_Linux:_Qt4 ist der Code einer erste Anwendung zu sehen. Wo kann ich diesen eintragen und zum Laufen bringen? In Qt4?
BlackJack

@pythonit: Qt4 ist ein GUI-Toolkit in C++ und grundsätzlich erst einmal für C++. Es gibt aber Anbindungen an verschiedene andere Programmiersprachen, unter anderem für Python. Da gibt es zwei konkurrierende Anbindungen PyQt4 und PySide, die sich in Lizenz und ein wenig im Umfang unterscheiden.

Was Du mit der Frage nach dem „wo eintragen“ meinst verstehe ich nicht so ganz!? In Qt kann man nichts eintragen, das ist einfach eine Bibliothek die aus Python-Sicht eine Sammlung von Modulen ist, die man importieren kann und woraus man dann Funktionen und Klassen verwenden kann um eine GUI aufzubauen.

Vielleicht solltest Du erst einmal mit den Python-Grundlagen anfangen, bevor es an GUI-Programmierung geht. In der Python-Dokumentation ist zum Beispiel ein Tutorial, dass man mal durchgearbeitet haben sollte.
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

Ich habe mich schon ein bisschen belesen, was python betrifft. Auch unter IDLE einiges ausprobiert.

Ich hatte gehofft, so wie bei Delphi herangehen zu können. Dort hatte ich eine graphische Oberfläche, deren Module bereits in Pascal programmiert waren. Dann habe ich meine Anwendung zusammengestellt, in die entsprechenden Module im Pascal-code die Anwendungen eingetippt und so delphi erkundet. Gut pascal ist mir geläufig, doch python scheint auch nicht so kompliziert zu sein.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Ich kenne Delphi nicht so genau, aber schätze, wenn du eine umfangreichere IDE als IDLE suchst, könnte dir PyScripter auch gefallen:

http://code.google.com/p/pyscripter/
PyScripter Overview
PyScripter originally started as a lightweight IDE designed to to serve the purpose of providing a strong scripting solution for Delphi applications, complementing the excellent Python for Delphi (P4D) components. However, and with the encouragement of the P4D creator Morgan Martinez and a few early users, it has now evolved into a full-featured stand- alone Python IDE. It is built in Delphi using P4D and the SynEdit component but is extensible using Python scripts. Currently, it is only available for Microsoft Windows operating systems and features a modern user-interface. Being built in a compiled language is rather snappier than some of the other IDEs and provides an extensive blend of features that make it a productive Python development environment.

Why yet another Python IDE?
There are many Python Integrated Development Environments around. And quite a few good ones, for example PythonWin, Boa (a Delphi clone built for and with wxPython), SPE and Eric, not to mention IDLE which is included in the standard Python distribution. So it is reasonable to ask why bother to develop yet another Python IDE. The short answer is for the fun of it! The long answer relates to the ambition to create a Python IDE that is competitive with commercial Windows-based IDEs available for other languages.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

Aber es sollte eben Qt4 werde, wurde mir vielfach empfohlen und ist auch sehr umfangreich.
BlackJack

@pythonit: Ich glaube Du hast immer noch nicht ganz erfasst was Qt4 ist. Das ist eine Bibliothek — kein Programm das man starten kann.

Ein Programm bei dem man die GUI zusammen klicken kann und dort auch gleichzeitig den Quelltext reinschreiben kann, wirst Du nicht finden. Das ist heutzutage nicht mehr üblich. Um eine GUI zusammen zu klicken gibt es für Qt den QtDesigner. Der ist aber nicht an eine bestimmte Programmiersprache gebunden, bietet daher auch keinen Quelltexteditor. GUI-Layouts werden heutzutage als Daten aufgefasst. Diese Datendateien kannst Du entweder zur Laufzeit laden (`PyQt4.uic`-Modul / PySide hat das noch nicht) oder vorher mit einem Compiler Python-Quelltext generieren (``pyuic4`` für `PyQt4` oder ``pyside-uic`` für `PySide`). Diese generierten Module enthalten Klassen die man importieren und dann erweitern kann. (Auf keinen Fall sollte man direkt im generierten Quelltext schreiben.)

Um den Quelltext zu schreiben nimmst Du einen Editor oder eine IDE Deiner Wahl. Und frag jetzt bloss nicht was Du da nehmen sollst, denn davon gibt es deutlich mehr als GUI-Toolkits und damit einhergehend noch mehr subjektive Meinungen welcher Editor oder welche IDE am besten ist. Kebap mag zum Beispiel PyScripter. Wenn Du die IDE auch magst, spricht nichts dagegen Programme damit zu schreiben, die Qt verwenden.

Edit: Jetzt verstehe ich die letzte Frage im ersten Beitrag auch, glaube ich zumindest. Die Beispiele im Wikibook gibst Du in den Editor ein, der Dir gefällt. Das sind einfach Python-Quelltexte.
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

@ black Jack

Danke für deine klare Antwort.

So langsam dämmert mir das auch. So einfach wie bei Delphi scheint es nicht mehr zu sein, dort war ja das Turbo Pascal die Grundlage von allem!
Und so hatte man mit 10 Klicks einen grafischen Taschenrechner zusammengeklickt, ein bischen Quelltext, der die Funktionen definierte und gut.

Ich habe mich nun ein wenig in der Syntax belesen und nach grafischen Modulen gesucht, die sind aber nun wohl eher in c++ geschrieben?

Als Quelltexteditor reicht mir IDLE aus, das sollte aber nicht das Problem sein.
deets

@pythonit

Ich verstehe deine Frage bezueglich graphischer Module nicht. Das die in C++ oder C geschrieben sind, ist doch voellig irrelevant - du kannst PyQt4 wunderbar benutzen, ohne eine einzige Zeile C++ zu schreiben (geschweige denn, dieses Biest zu beherrschen...)
BlackJack

Wobei man vielleicht schon sagen muss, dass man sich auch der original Qt-Dokumentation bedienen sollte, also ab und zu etwas C++ zu Gesicht bekommt. Davon sollte man sich aber nicht erschrecken lassen. Man muss dazu nicht C++ in seiner ganzen Komplexität können. Es reicht wenn man die Funktions- und Methodensignaturen versteht, beziehungsweise das Muster nach dem man die in Python „übersetzt“.

@pythonit: Ergänzend zu deets: Angenommen bei Delhpi/TurboPascal wären die grafischen Elemente nicht in Pascal selbst geschrieben gewesen, dann hättest Du das doch überhaupt nicht gemerkt!?

Einen Taschenrechner kann man mit dem Qt-Designer auch zusammenklicken. Dann schreibt man in Python die Funktionen dazu. Es mag etwas länger dauern, weil man es nicht in *einer* IDE hat und man die Methoden selber schreiben muss, statt nur den Methodenrumpf und weil man sich noch um das verbinden der GUI-Elemente mit den Methoden kümmern muss.

Wenn man sauber vorgeht, würde man vielleicht noch zusätzlich die eigentliche Logik des Taschenrechners in einer eigenen Klasse kapseln, die völlig unabhängig von der GUI ist. Die „alten“ IDEs haben ja immer auch dazu verleitet GUI und Programmlogik nicht sauber zu trennen.

Taschenrechner finde ich übrigens nicht wirklich ein schönes Einsteigerbeispiel, auch wenn das immer gerne genommen wird. Selbst so ein gewöhnlicher Billigtaschenrechner mit den vier Grundrechenarten hat in der Regel mehr Komplexität als man das auf den ersten Blick vermutet. Die können nämlich meistens auch „Punkt vor Strich“ und kommen auch damit klar wenn man verschiedene Rechenoperationen direkt nacheinander drückt (die letzte zählt dann). Du hast ja schon Programmiererfahrung, aber richtige Anfänger sind damit oft schon an der Grenze.
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

Dieser thread hat mir schon sehr viel gebracht. So langsam werden mir die Zusammenhänge klar. Ich habe jetzt in Qt4 mal ein bisschen mit den widgets "herumgespielt" - das ist ja eigentlich das, was ich von delphi kenne - noch nicht so umfangreich, und auch eine deutschsprachige Dokumentation fehlt mir noch, so muß es die englische bringen.

C++ stört mich nicht, das war meine Programmiersprache 1987/88 beim Studium :oops: und es ist schon so, in welcher Programmiersprache diese widgets geschrieben wurden, interessiert eigentlich nicht. Die Einbindung in python scheint einfach.

Es wird stark auf die Trennung zwischen Ausgabe und Verarbeitung geachtet - das ist etwas gewöhnungsbedürftig. Allerdings wurde das auch bei Delphi immer priorisiert, der Zwang zur Umsetzung war eben nicht so stark.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Was meinst du mit "noch nicht so umfangreich"? Die Auswahl an Widgets bei Qt4 kannst du ja nicht meinen, denn die ist sehr groß. Und dass die Doku auf englisch ist, ist der Normalfall. Die ist einfach so umfangreich, dass Übersetzungen nach jeder Änderung viel zu Aufwendig wären und sich auch gar nicht lohnen würden, weil die meisten Entwickler eh Englisch können (aber es kann eben nicht jeder deutsch oder Norwegisch).
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

Ich muss mich halt wieder ein bisschen in das Fachenglisch einlesen. Aber bis gestern wusste ich auch nicht, was widgets sind, und das ist die Bezeichnung in den deutschen Unterlagen. Wie ist die thread-Übersicht "Ganz am Anfang"

Was den Umfang betrifft, ich sehe auf den ersten Blick bei Qt4 auf der linken Seite geschätzte 50 Icons für widgets, zu viel sind das nicht. Ich gehe schon davon aus, dass man das noch erweitern kann.
BlackJack

@pythonit: Meinst Du mit Qt4 jetzt den Designer? Du findest ≈50 Widgets nicht viel!? Also ich finde das ziemlich viel. Die meisten GUIs benutzen davon doch nur einen Bruchteil.
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

Das ist nur der erste Eindruck!! Ich Vergleich zu Delphi. Aber es wird reichen. Auf jeden Fall weis ich mittlerweile, wo es lang geht.
Danke der Hilfe hier! :D

Und jetzt geht es ans Datenbank erstellen, Programmieren.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Das klingt alles recht interessant. Ich hab in Python auch noch kaum Erfahrung mit GUI Programmierung. Ist das ein empfohlener Weg? So ähnlich hab ich mir auch schon mal GUI mit Code im Hintergrund in Excel Visual Basic "zusammengeklickt" (sollte man wohl eher verschweigen), aber in Python hatte ich noch nie darüber nachgedacht. Werd mir mal den QtDesigner ansehen, aber vielleicht gibts noch spannende Alternativen?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
pythonit
User
Beiträge: 8
Registriert: Dienstag 15. November 2011, 19:07

@ Kepab

Ja, was einem mit TurboPascal an Programmdisziplin aufgezwungen wurde, hat man mit Basic wieder über Bord werfen dürfen. Ich habe aus diesem Grund auch Basic gemieden. Aber schnell ging es.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ne alterntive zu Qt Designer ist in der GTK+-Welt dann GLADE.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten