Dynamische Schriftgröße

Plattformunabhängige GUIs mit wxWidgets.
Antworten
akhof
User
Beiträge: 104
Registriert: Mittwoch 11. Mai 2011, 19:07
Kontaktdaten:

Hallo,
bei meinem aktuellen Projekt muss ich einen einfachen Dialog mit einem Label erstellen. Die Schriftgröße des Labels soll sich dynamisch der Fenstergröße anpassen, sodass dieser immer die maximale Größe besitzt - also dass der gesamte Fensterraum ausgenutzt wird, aber die Schrift noch vollständig zu sehen ist.
Im Internet bin ich nicht wirklich fündig geworden. Hat jemand eine Idee, wie ich das Problem lösen/umgehen kann?
Danke schonmal im Vorraus1
Lg, akhof
Piet Lotus
User
Beiträge: 80
Registriert: Dienstag 14. November 2006, 10:40

Hallo akhof,
was hast du denn schon versucht? Was bedeutet "Label" bei dir? Soll das ein wx.StaticText sein? Besitzt dein Label nur dieses eine Textfeld oder gibt es noch mehr Dialogelemente, wie ein wx.TextCrtl und das Label ist die Beschriftung des Eingabefeldes? Was bedeutet bei dir "Problem umgehen"? Was ist denn dein Problem? Das du nichts im Internet findest, das du keine dynamische Größenänderung möchtest? Was bedeutet dynamisch? Kann der Nutzer den Dialog in der Größe ändern und die Textgröße soll sich anpassen? Was ist ggf. mit den anderen Dialogelementen? Was willst du denn genau erreichen und wann?
Viele Grüße
Piet
akhof
User
Beiträge: 104
Registriert: Mittwoch 11. Mai 2011, 19:07
Kontaktdaten:

Hallo Piet Lotus,
ja, mit Label meinte ich StaticText. Ich benutze ausscließlich einen StaticText ohne weitere Elemente. Mein Problem ist, dass die Schriftgröße bei kleineren Bildschirmgrößen einfach zu groß ist. Die Schrift sollte die maximale Größe haben, die funktioniert ohne dass der Text außerhalb des Fensterrandes ist. Mit Problem umgehen meinte ich eine Lösung die vlt. auch indirekt ist (also z.B. kein wxPython-Style).
"Kann der Nutzer den Dialog in der Größe ändern und die Textgröße soll sich anpassen?" → Ja
"willst du denn genau erreichen und wann?" → ich verstehe nicht, was genau Du mit dieser Frage meinst :K
LG, akhof
Piet Lotus
User
Beiträge: 80
Registriert: Dienstag 14. November 2006, 10:40

Hallo akhof,
akhof hat geschrieben:"willst du denn genau erreichen und wann?" → ich verstehe nicht, was genau Du mit dieser Frage meinst :K
Die Frage zielte darauf ab, wann du den Dialog mit Text ggf. in der Größe verändert haben willst, also, ob die Größenänderung ggf. durch den Nutzer geschehen soll oder der Nutzer eigentlich nichts machen kann, die Größe des Dialogs aber von Inhalt oder einem anderen Zustand des Programms abhängt, der Nutzer aber eigentlich selbst nicht die Größe direkt anpassen kann. Aber egal :-)
Ich vermute mal, durch einen Sizer kannst du die Standardgröße des StaticText bei Größenänderungen so nicht anpassen. Ich habe sowas jetzt nicht explizit ausprobiert, kann mich aber nicht erinnern, dass mir das so schon mal untergekommen ist. Hast du schon mal ausprobiert einen wx.Font im Zusammenhang mit dem StaticText zu verwenden? Den wx.Font könntest du bei Erzeugung eine Größe mitgeben. Falls der Nutzer jetzt die Dialoggröße verändert, müsstest du das Event der Größenänderung "abfangen" und ggf. über die Font-Methoden SetPixelSize oder SetPointSize die Größe manipulieren und neu zeichnen. Ich vermute mal, man kann die Größe irgendwie über diese Methoden verändern- hab ich noch nicht probiert. Nur so als Anregung.
Ich weiß nicht, ob das was hilft...
Viele Grüße
Piet
Antworten