Notebook Page unsichbar machen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
B-Baer
User
Beiträge: 23
Registriert: Donnerstag 5. August 2010, 11:56

Hallo,

ich habe eine kleine GUi erstellt, in der ich ein Notebook verwende.
Das Notebook besitzt 5 Pages.
Nun möchte ich eine der Pages unsichtbar machen und ggf im Apllikationsablauf wieder sichbar machen.
Sprich wenn sie "unsichtbar" ist soll die Page nicht mehr vom Benutzer erreicht weerden können.

Hat jemand ne Idde wie ich das bewerkstelligen kann?

Besten Dank!
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

Benutze einfach die Hide bzw. Show-Methode des Panels (oder habe ich dich falsch verstanden?)
B-Baer
User
Beiträge: 23
Registriert: Donnerstag 5. August 2010, 11:56

Hallo ja :wink: ,

hide oder show(false) scheint bei Notebook Pagel / Panel nicht zu funktionieren!

Ich möchte aber auch nicht das Panel entfernen per remove und dann wieder adden
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

B-Baer hat geschrieben:hide oder show(false) scheint bei Notebook Pagel / Panel nicht zu funktionieren!
Hmm, das folgende Beispiel tut nicht?

Code: Alles auswählen

#! /usr/bin/env python
# coding: iso-8859-15 -*-

import wx

class MyFrame(wx.Frame):
  def __init__ (self):
    wx.Frame.__init__(self, None)
    self.nb = wx.Notebook(self)
    self.nb.AddPage(wx.Panel(self.nb), 'Seite1')
    self.nb.AddPage(wx.Panel(self.nb), 'Seite2')
    self.nb.AddPage(wx.Panel(self.nb), 'Seite3')
    self.btn = wx.Button(self.nb.GetPage(0), label='zeige/verstecke Seite2')
    self.btn.Bind(wx.EVT_BUTTON, self.on_button)
    self.Show()
  def on_button(self, e):
    if self.nb.GetPage(1).IsShown():
      self.nb.GetPage(1).Hide()
    else:
      self.nb.GetPage(1).Show()

app = wx.App()
frm = MyFrame()
app.MainLoop()
Das funktioniert bei mir unter Ubuntu 9.10, python2.6, wx2.8.
Welches Betriebssystem, python-Version, wx-Version hast du?
B-Baer
User
Beiträge: 23
Registriert: Donnerstag 5. August 2010, 11:56

Nee, das Beispiel geht nicht bei mir... :cry:

Windows XP; Python 2.5; wx 2.8
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

B-Baer hat geschrieben:Nee, das Beispiel geht nicht bei mir... :cry:

Windows XP; Python 2.5; wx 2.8
Schade (aber interessant zu wissen) ... tja, dann wird dir wohl doch nur noch RemovePage/InsertPage übrigbleiben. Leite doch einfach eine eigene Klasse von wx.Notebook ab und schreib dir eine HidePage-Methode. Das ist doch nicht besonders schwierig oder aufwendig.
Antworten