Verständnisfrage Qt

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
pixewakb
User
Beiträge: 1408
Registriert: Sonntag 24. April 2011, 19:43

Leider habe ich keine konkrete Frage, sondern ein Verständnisproblem. Ich habe unter anderem dieses Beispielprogramm gefunden:

http://qteam.wikidot.com/pyqt-tic-tac-toe

(1) Wenn ich das richtig sehe, gibt es keine return-Werte und keine main-Schleife mit Funktionen, die nacheinander aufgerufen werden, sondern je nach Klick passiert etwas anderes.

Wenn ich es richtig sehe, übergebe ich Funktionen auch keine Variablen, da steht immer nur self drin. In einem Beispiel habe ich eine Funktion der Form

Code: Alles auswählen

def funktionsname(self, path):
    pass
gesehen, wobei path m. E. nirgendwo mit Inhalt gefüllt wurde, initialisiert wurde bzw. die Funktion stand nirgendwo mit der zweiten Variablen. Ist das so oder kann ich mit return-Werten irgendwie arbeiten?

(2) Wenn ich das richtig sehe, dann muss ich meine Funktionen extrem an das GUI anpassen und damit verknüpfen. Ein Entwickeln eines Skripts mit Main-Schleife, Rückgabewerten usw. und dann in einem zweiten Schritt das Anbinden von GUI-Elementen macht keinen Sinn? Richtig?
deets

Natuerlich gibt es einen Main-Loop - der versteckt sich hinter der app.exec_-Methode. In dem Mainloop werden alle Maus- und Tastaturereignisse erfasst und an das Programm verteilt. So wird zb der Druck auf einen Knopf erkannt.

Und fuer das, was dann passiert, wirst du nicht herumkommen, dich in Qt und PyQt einzulesen: Qt kennt einen Mechanismus der "signal-slot" heisst, und der dazu verwandt wird, Objekte der GUI (und andere) mit Logik-Komponenten deiner Anwendung zu verknuepfen. Genau das passiert mit dem Code hinter "Connect the buttons". Allerdings passiert das in einem "old-style", wie er heute nicht mehr gebrauechlich ist.

Hier die entsprechende Doku: http://www.riverbankcomputing.com/stati ... slots.html

Dein Folgerungen aus dieser Sache ist ebenfalls nicht richtig. Es lohnt sich sehr wohl, seine Logik moeglichst unabhaengig zu entwickeln. Gewisse Dinge sind dann schon zu beachten, zB sollten Rechenvorgaenge in kleine Happen zerlegt werden, damit die GUI zwischendurch neu dargestellt werden kann. Aber grundsaetzlich ist es gut, Logik und Datenstrukturen getrennt vom GUI-Code zu entwickeln.
Antworten