wx.Frame Centre auf parents

Plattformunabhängige GUIs mit wxWidgets.
Antworten
sabram
User
Beiträge: 28
Registriert: Mittwoch 5. Januar 2011, 13:42

Hallo, ich habe ein Problem.

Ich habe ein großes wx.Frame in dem sich ein Treeview und ein Notebook befinden die jeweils Kinder des großen wx.Frames sind.
Nun erstelle ich durch context Menu selection ein neues wx.Frame welches ich natürlich Centrieren möchte, allerdings zentriert mir wxPython das neue Fenster auf dem TreeView und nicht auf dem gesamten Editor Frame.
Was kann ich tun um da abhilfe zu schaffen?

Mein wx.Frame das durch ContextMenu erstellt wird.
http://pastebin.com/xzsqiinH
Edit : hier hat sich in Zeile 10 ein Fehler eingeschlichen. Es soll "self.parent = parent" heißen

Der Aufruf, innerhalb des Treeviews.
http://pastebin.com/eDgbLKZd

Genauer, innerhalb des FindLibraryStep Fensters komme ich mit self.parent auf den TreeView
mit self.parent.parent auf das Fenster auf das ich es gerne zentrieren möchte.

Vielen Dank!
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Hm, er zentriert es auf das parent, und das ist in deinem Fall das Treeview. Ich weiss auch nicht, du müsstest die Koordinaten und Größe des parent.parent (dem "alten" Frames) feststellen und mit Move bewegen. Vielleicht geht das (oder mit wx.CallAfter).

Oder noch einfacher, du erstellst das neue Frame nicht vom Treeview aus (wenn das geht), sondern vom alten Frame selbst. Dann ist das das parent.
sabram
User
Beiträge: 28
Registriert: Mittwoch 5. Januar 2011, 13:42

Francesco hat geschrieben:Hm, er zentriert es auf das parent, und das ist in deinem Fall das Treeview. Ich weiss auch nicht, du müsstest die Koordinaten und Größe des parent.parent (dem "alten" Frames) feststellen und mit Move bewegen. Vielleicht geht das (oder mit wx.CallAfter).

Oder noch einfacher, du erstellst das neue Frame nicht vom Treeview aus (wenn das geht), sondern vom alten Frame selbst. Dann ist das das parent.
Vielen Dank ersteinmal für die Antwort.
Ich kann das Fenster nicht nicht vom Treeview erstellen, da es nur vom ContextMenu des TreeViews heraus aufrufbar sein soll.
Das einzige worüber ich auch nachgedachte habe war die Koordinaten des parent.parent herauszufinden und darauf Move anzuwenden, wobei ich das nicht wirklich toll und sauber finde.

Ich habe jetzt ebend noch versucht vom dem self.Centre() aufruf das self.parent = self.parent.parent zu setzen. Leider hatte das auch keine Änderung zur Folge.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

sabram hat geschrieben: Das einzige worüber ich auch nachgedachte habe war die Koordinaten des parent.parent herauszufinden und darauf Move anzuwenden, wobei ich das nicht wirklich toll und sauber finde.
Ja, so richtig elegant ist das nicht, aber wenn es (wider Erwarten) keine andere Möglichkeit gibt... Aber du könntest es im irc oder direkt in der mailing list (Robin Dunn) versuchen.
Antworten