0

Hi Ich weiß, das ist eine ziemlich grundlegende Designfrage. Aber ich verstehe es nicht wirklich .... Ich schreibe es in Python mit PySide, aber ich denke, das ist mehr eine Frage der Sprache nicht verwandt. Ein vereinfachtes Beispiel, was ich tun möchte:clean divide Code und Gui

Ich habe ein Gui mit einer Schaltfläche, die einen Dateidialog öffnet. In diesem wähle ich einen Ordner. Der Code scannt die Suffixe der Dateien im Ordner und gibt die 3 benötigten Dateien zurück. sagen wir mal .mp3, .txt und .mov und zeigt sie in der gui.

Bis zu diesem Punkt sollte die Trennung kein Problem sein Ich hätte eine Gui-Klasse, die den Code der Kernklasse ausführt, ruft die drei Dateien als Rückgabewerte und richtet die GUI ein.

Worüber ich mich wundere ist, was passiert, wenn es mehr als eine Datei mit dem Suffix .mp3 gibt. Ich möchte ein Pop-up mit einer Combobox haben, um das zu wählen, das ich verwenden möchte. Aber ich verstehe nicht, wie ich es implementieren kann, ohne der Hauptklasse einen Gui-Code hinzuzufügen.

Antwort

1

Nun vielleicht haben die Funktion im Core-Modul einige Specifier zurückgeben, dass so etwas passiert ist (gefunden mehrere) zusammen mit den Vornamen, dann zeigen Sie die Wahl an den Benutzer und rufen Sie eine Funktion im Core-Modul, die relevant zurückgibt Informationen über diese Datei.

Denken Sie daran, Sie müssen dogmatische in Bezug auf solche Einschränkungen sein, gibt es einige Situationen, in denen Code in der GUI ist viel weniger Aufwand als eine Art zu integrieren zwischen Modulen zu integrieren.

Hier treffen Sie eine Entscheidung darüber, wie Sie den Code schreiben sollen, wobei zu berücksichtigen ist, wie wichtig dieses Merkmal für Sie ist, wie testbar/wartbar es sein soll.