Frame an Bildschirm verschiedenen Bildschirmen anpassen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Begin
User
Beiträge: 17
Registriert: Donnerstag 26. Mai 2011, 09:32

Hallo,

ich probiere gerade einen Frame zu erstellen der mehrere selbst gezeichnete Button und Beschriftungen, sowie Grafiken, wie LED und Display hat.
Mein Problem ist, ich benutze gerade

Code: Alles auswählen

wx.DisplaySize())
soweit passt noch alles, aber wenn ich mit der Maus das Fenster kleiner mache verschwinden dann meine Buttons oder Grafiken, ich schätzte weil die nicht mit skaliert werden.
Wie könnte ich das machen immer die größte Bildschirmauflösung zu haben und wenn ich das Fenster verkleinere, dass der Inhalt mit skaliert wird.#
Wenn es geht nicht unbedingt ein Wort wie sizer hinschreiben.
Vielen Dank
BlackJack

@Begin: Verwendest Du denn Sizer? Eigentlich sollten Widgets nämlich eine minimale Grösse haben unter die man sie nicht verkleinern kann.
Begin
User
Beiträge: 17
Registriert: Donnerstag 26. Mai 2011, 09:32

Nein, ich verwende keinen sizer!
Wenn der helfen würde, wäre ich über Informationen erfreut. Denn muss ich wahrscheinlich für den Frame und die Grafik eigentlich alles benutzen oder ?
Ich möchte es so wie bei Windows haben wenn ich das Fenster klein mach soll alles klein werden und nicht irgendwelche Teile weglassen.

Danke schon mal für die antwort
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Dann schau dir doch mal die wxPython Demo for Windows an. Da findest du ein Sizer Beispiel das deinen Fall betrifft. (Und natürlich noch andere Dinge :) )
Begin
User
Beiträge: 17
Registriert: Donnerstag 26. Mai 2011, 09:32

Meinst du das mit dem Layoutf ?
Das würde ich denken,das es geht. Muss ich gleich mal testen.
Begin
User
Beiträge: 17
Registriert: Donnerstag 26. Mai 2011, 09:32

Hab das mit dem Sizer gefunden, aber irgendwie blick ich da nicht durch.
Gibts da keine kleineren Beispiele ?

Code: Alles auswählen

class MyFrame(wx.Frame):

    def __init__(self):
        
        wx.Frame.__init__(self, None, wx.ID_ANY, 'Hallo', pos=(0, 0), size=wx.DisplaySize())
        self.SetBackgroundColour("black")
Hab hier mein Layout und im Layout habe ich selbst erstellte Grafiken als Buttons benutzt.
Muss man zuerst das Layout sizen und dann alle Dinge die in dem Layout sind ?
Hoffe jeder hat Verständnis!

Danke
Nebelhom
User
Beiträge: 155
Registriert: Mittwoch 19. Mai 2010, 01:31

Bevor ich versuche eine nicht adequate Erklaerung abzugeben, verweise ich lieber auf die Tutorials, die es frei im Netz gibt und die mir recht gut geholfen haben.

Another wxPython Tutorial =>siehe Layout Management

Das tolle Zetcode Tutorial => siehe wieder Layout Management

Falls Englisch das Problem ist, warum diese noch nicht gefunden hast sieh dir mal den thread an viewtopic.php?f=19&t=5302. Vielleicht hilft es ja.

Im Grunde gibt es zwei Arten mit wxpython ein Layout zu machen. Durch absolute positionierung (koordinaten angabe und groessen angabe als pixelzahl) und eben durch sizer. Sizer werden innerhalb von Frames und Panels benutzt, um sich anhand von angegebenen Flags und relativen ordnungsangaben (relativ zu anderen sizern) mehr oder minder automatisch anzuordnen. Das ist fuer code maintenance dann einfacher als alle absoluten positionierungen immer aendern zu muessen, wenn man ein neues widget einbauen will.

Ein weiterer Nebeneffekt von absoluter positionierung ist eben der, den du gesehen hast.

hope that helps.
Antworten