SplitterWindows und Events

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

SplitterWindows und Events

Beitragvon boworihyn » 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

Beitragvon pr0stAta » 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

Re: SplitterWindows und Events

Beitragvon Francesco » 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

Beitragvon boworihyn » 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

Beitragvon pr0stAta » 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

Beitragvon boworihyn » 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

Beitragvon Francesco » 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=]
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.[/code]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » 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

Beitragvon boworihyn » Mittwoch 21. Juni 2006, 07:58

Ihr seid Klasse :D

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder