SplitterWindows und Events

Plattformunabhängige GUIs mit wxWidgets.
Antworten
boworihyn
User
Beiträge: 5
Registriert: Dienstag 20. Juni 2006, 13:20

Dienstag 20. Juni 2006, 13:27

Ich bin neu in diesem Forum und deshalb zuerst einmal ein herzliches Hallo an alle :D

Natürlich benötige ich auch Rat. Folgende Situation: Ich habe ein wx.SplitterWindow und möchte das Event, das abgefeuert wird wenn der Trennbalken des Fensters bewegt wird, verarbeiten. Leider weiß ich nicht wie dieses Event heißt, kann es also auch nicht abfangen. Kann mir jemand von euch helfen ?

Danke im Voraus
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Dienstag 20. Juni 2006, 14:00

Ich bin neu in diesem Forum und deshalb zuerst einmal ein herzliches Hallo an alle
Willkommen boworihyn! :)

Zu deinem Problem:
Fang zuerst das Event mit:

Code: Alles auswählen

  self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGING, self.onChange)
ab. In die passenden onChange Methode schreibst du nun:

Code: Alles auswählen

  evt.SetSashPosition(-1)
Damit sollte das Splitterwindow fix sein.
Gruss
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Dienstag 20. Juni 2006, 14:01

boworihyn hat geschrieben:Ich bin neu in diesem Forum und deshalb zuerst einmal ein herzliches Hallo an alle :D

Natürlich benötige ich auch Rat. Folgende Situation: Ich habe ein wx.SplitterWindow und möchte das Event, das abgefeuert wird wenn der Trennbalken des Fensters bewegt wird, verarbeiten. Leider weiß ich nicht wie dieses Event heißt, kann es also auch nicht abfangen. Kann mir jemand von euch helfen ?

Danke im Voraus
Hallo und willkommen,

wenn du dir das Demo (und den Source) ansiehst, siehst du beim ziehen des Trennbalkens
Während des bewegens (linke maustaste bleibt gedrückt)
"sash changing to xxx"... wx.EVT_SPLITTER_SASH_POS_CHANGING

Beim loslassen kommt dann:
"sash changed to xxx". wx.EVT_SPLITTER_SASH_POS_CHANGED
boworihyn
User
Beiträge: 5
Registriert: Dienstag 20. Juni 2006, 13:20

Dienstag 20. Juni 2006, 14:04

Vielen Dank euch beiden !

Das war genau das, was ich gesucht habe. Gibt es nicht irgendwo eine Sammlung aller Event Typen ?
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Dienstag 20. Juni 2006, 14:24

[ironie] Schön das wx so unglaublich gut dokumentiert ist [/ironie] :)

http://www.wxpython.org/docs/api/wx.Event-class.html
Die API könnte in diesem Fall helfen. Ist aber nicht wirklich befriedigend.
Meistens helfen die DEMO Programme, um sich eine Lösung
zusammenzusuchen.
boworihyn
User
Beiträge: 5
Registriert: Dienstag 20. Juni 2006, 13:20

Dienstag 20. Juni 2006, 14:35

Die API hatte ich auch schon durch, nur leider findet man (ich ?) dort nur die Name der Event Klassen und eben nicht die Bezeichner (also EVT_...).
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Dienstag 20. Juni 2006, 15:16

pr0stAta hat geschrieben:[ironie] Schön das wx so unglaublich gut dokumentiert ist [/ironie] :)

http://www.wxpython.org/docs/api/wx.Event-class.html
Die API könnte in diesem Fall helfen. Ist aber nicht wirklich befriedigend.
Meistens helfen die DEMO Programme, um sich eine Lösung
zusammenzusuchen.
Ich verwende meist die wxwindows hilfe datei, die mitgeliefert wird
(wx.chm).
Wenn ich dann wxSplitterWindow heraussuche, sind die Eventkonstanten
auch beschrieben.

Code: Alles auswählen

EVT_SPLITTER_SASH_POS_CHANGING(id, func)  The sash position is in 
the process of being changed. May be used to modify the position of the 
tracking bar to properly reflect the position that would be set if the drag 
were to be completed at this point. Processes a 
wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING event.  

EVT_SPLITTER_SASH_POS_CHANGED(id, func)  The sash position was 
changed. May be used to modify the sash position before it is set, or to 
prevent the change from taking place. Processes a 
wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED event.  

EVT_SPLITTER_UNSPLIT(id, func)  The splitter has been just unsplit. 
Processes a wxEVT_COMMAND_SPLITTER_UNSPLIT event.  

EVT_SPLITTER_DCLICK(id, func)  The sash was double clicked. The 
default behaviour is to unsplit the window when this happens (unless the 
minimum pane size has been set to a value greater than zero). Processes 
a wxEVT_COMMAND_SPLITTER_DOUBLECLICKED event.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 20. Juni 2006, 17:51

pr0stAta hat geschrieben:[ironie] Schön das wx so unglaublich gut dokumentiert ist [/ironie] :)

http://www.wxpython.org/docs/api/wx.Event-class.html
Die API könnte in diesem Fall helfen. Ist aber nicht wirklich befriedigend.
Hi!

Ich bin drauf gekommen, dass die API-Dokumentation mir nur sagen kann, was es in wxPython gibt, also was von Python aus verwendet werden kann, aber nicht wie man die Objekte verwendet, welche Events sie unterstützen usw.

Allerdings ist die wxWidgets-Dokumentation dahingegen schon um einiges reicher an Informationen. Siehe: http://wxwidgets.org/manuals/2.6.3/wx_w ... indow.html

wxPython-Doc --> http://wxpython.org/docs/api/
wxWidgets-Doc --> http://wxwidgets.org/manuals/2.6.3/wx_contents.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
boworihyn
User
Beiträge: 5
Registriert: Dienstag 20. Juni 2006, 13:20

Mittwoch 21. Juni 2006, 07:58

Ihr seid Klasse :D
Antworten