NoteBook: GetSelectedPage

Plattformunabhängige GUIs mit wxWidgets.
Antworten
fanus
User
Beiträge: 46
Registriert: Dienstag 13. November 2007, 09:53

Hallo liebe Leute,

ich hab ein ganz einfaches NoteBook mit 3 Seiten (Page1, Page2, Page3). Ziel ist zu wissen, welche Seite ist momentan selektiert, dh.
wenn Page1 selektiert: print "Page1 is selected"
.........Page2 ......................."Page2 is selected"
.........Page3 ......................."Page3 is selected"

Danke für eure Hilfe!
LG,
fanus
:)
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

Code: Alles auswählen

NoteBook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.on_page_selected)

def on_page_selected(self, event):
        page = event.GetSelection()
Gruß
Christoph
fanus
User
Beiträge: 46
Registriert: Dienstag 13. November 2007, 09:53

hallo erstmal und Danke Christoph für die Antwort!

.GetSelection() gibt die momentan selektierte Seite.. ich möchte aber auch wissen welche von den drei das ist? gibts bei wxPython sowas wie:

NoteBook.GetPageText(Notebook.GetSelection())

LG,
fanus
:)
capsule5
User
Beiträge: 28
Registriert: Sonntag 10. Dezember 2006, 18:49

Natürlich,

Code: Alles auswählen

NoteBook.GetPageText(event.GetSelection())
liefert den Text (kannst Du aber auch einfach mal selbst probieren)

Gruß
Christoph
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Aber Vorsicht unter Windows:

Code: Alles auswählen

wxNotebookEvent::GetSelection
int GetSelection() const

Returns the currently selected page, or -1 if none was selected.

NB: under Windows, GetSelection() will return the same value as GetOldSelection() when called from EVT_NOTEBOOK_PAGE_CHANGING handler
and not the page which is going to be selected. 
Das hat mich schon mal ziemlich geärgert.
MfG
HWK
Benutzeravatar
Schaf220
User
Beiträge: 113
Registriert: Montag 11. August 2008, 16:00
Wohnort: Bremen
Kontaktdaten:

Das ist schon ziemlich gut, aber wie bekomme ich jetzt genau raus bzw. die Seite, welche selektiert ist?

Lösung: Man benötigt das Event "EVT_NOTEBOOK_PAGE_CHANGED" und nicht das Event "EVT_NOTEBOOK_PAGE_CHANGING", dann nimmt er den richtigen Namen der Page!

MfG Schaf220
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

the more they change the more they stay the same
Antworten