[ TAG 450 ][14.06.2022] -Erfolgreich -IAP-20220403-20220403-1150 -Positionierungsproblem

Zu den bisherigen Entwicklungsstand des IAP-Moduls. Ich muss meine Herangehensweise ändern. Bisher habe ich die Positionierungsalgorithmen mit allen anderen Filtern zusammen gesehen.

Ich habe die Positionierungsalgorithmen mit einen bestimmten Element verknüpft. Es war das FRM-Element. Dieser Lösungsansatz war nicht sehr gut. Jedoch bestand in diesen Lösungsansatz bereits die Idee, die Positionierungsalgorithmen in einzelnen Elementen vorzunehmen, sondern in einen Element zentral zu fokussieren.

Es waren im Grunde bereits die ersten Denkansätze zu einen Layout-Manager.

Die Kernaufgabe des [ DeFSTL ] besteht darin default-Werte zu initialisieren. Für [si_chldtw] und [si_chldth] kann es keine default-Werte geben, weil diese Werte aus den Kindelementen hergeleitet werden. Diese zwei Eigenschaften sind eigentlich für das Positionierungs-System relevant.

Eine interessante Interface-Eigenschaft wäre zum Beispiel, wenn der User Zugriff auf die Eigenschaften [si_width] und [si_height] hätte.
Wenn [si_width] und [si_height] kleiner vom User angegeben werden als die Kindelemente, werden diese Eigenschaften korrigiert und auf die Breite und Höhe der Kindelemente eingestellt.
Wenn die Werte der [si_width] und [si_height] größer sind als die Gesamtgröße der Kindelemente, dann können die Elemente über den User ausgerichtet werden.

"FRM": {
f"{si_x}": None,
f"{si_y}": None,
f"{si_width}": None,
f"{si_height}": None,
f"{si_chldtw}": None,
f"{si_chldth}": None,
f"{si_mr}": None,
f"{si_ml}": None,
f"{si_mt}": None,
f"{si_mb}": None,
f"{si_bg}": None,
f"{si_alg}": None,
f"{si_wdg}": None
},
Es stellt sich natürlich die Frage, welche Werte diese Ausrichtung am besten beschreiben?

Mir stehen zwei Auswahlmöglichkeiten zu Verfügung. Dazu gehören anchor und justify.

si_anchr = "anchor"
si_anchr_N = "n"
si_anchr_W = "w"
si_anchr_S = "s"
si_anchr_E = "e"
si_anchr_NW = "nw"
si_anchr_SW = "sw"
si_anchr_SE = "se"
si_anchr_NE = "ne"
Alle Ausrichtungspunkte sind definiert. Es muss jedoch die Mitte definiert werden. Mir persönlich gefällt diese Lösungsmöglichkeit nicht, einen Wert zu definieren, der in den [tkinter]-Konstanten nicht vorkommt. 

Bei den [justify]-Werten kann man die Ausrichtungen kombinieren. Dabei brauchen wir horizontale und vertikale Komponente.
si_jstfy = "justify"
si_jstfy_left = "left"
si_jstfy_right = "right"
si_jstfy_top = "top"
si_jstfy_bottom = "bottom"
si_jstfy_center = "center"
Der Nachteil beim [ justify ] besteht darin, dass die Ausrichtungspunkte [n, w, s, e] nicht definiert sind. Somit müssen sie mit zusätzlichen Eigenschaften definiert werden. Oder sie müssen kombiniert werden.

Auf der Horizontalen haben wir [left, right, center] und auf der Vertikalen haben wir [top, bottom, center].

Im [NoNSTL] habe ich folgende Erweiterungen vorgenommen.
"FRM": {
f"{si_x}": None,
f"{si_y}": None,
f"{si_width}": None,
f"{si_height}": None,
f"{si_chldtw}": None,
f"{si_chldth}": None,
f"{si_jstfy}": None,
f"{si_alg}": None,
f"{si_mr}": None,
f"{si_ml}": None,
f"{si_mt}": None,
f"{si_mb}": None,
f"{si_bg}": None,
f"{si_wdg}": None
},
"GRP": {
f"{si_x}": None,
f"{si_y}": None,
f"{si_width}": None,
f"{si_height}": None,
f"{si_chldtw}": None,
f"{si_chldth}": None,
f"{si_jstfy}": None,
f"{si_alg}": None,
f"{si_mr}": None,
f"{si_ml}": None,
f"{si_mt}": None,
f"{si_mb}": None
}

Für die nächste Worksession nehme ich mir vor die [DeFSTL_LIB] zu überarbeiten und ein LayoutManager zu entwickeln.






Kommentare

Beliebte Posts aus diesem Blog

[ TAG 38 ][29.05.2021] - Erfolgreich - Freelancer-Portale

[ TAG 747 ][07.04.2023] -Erfolgreich -BNKTRS -Google Code -Objekt und Methodenliste

[ TAG 52 ][12.06.2021] - Erfolgreich - IAP-20210601-20210609-2325