Wie soll ich Elemente verstecken

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
azrael1111
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 21:05
Wohnort: Croatien

Hier is der Frame an dem ich arbeite.

Ich habe ein ToolBar ganz oben den ich mit Sizern plaziert habe. Unter der Toolbar ist der BoxSizer2. Wenn ich auf verschiedene Buttons in der toolbar sollen sich verschiedene Formen im BoxSizer2 zeigen und die vorherigen verschwinden.
Ich bin mir nicht ganz sicher wie ich dass machen soll.

Ich habe es auf verschiedene Arten probiert aber nichts hat bisher geklapt. Ich habe folgendes versucht

1) Fuer jeden Button im Toolbar einen Sizer erstellen und dann nur mit der durchsichtigkeit spielen. Etwa wie im CSS mit den <DIV> tags und z-axis nur dass ich immer einen sichtbar mache durch den EventHandler.

F: Ich habe gesucht nach solch einer Methode habe aber nichts gefunden.

2) Ich dachte mir mit Detach() die elemente aus dem Sizer rauszuschmeissen (Da ich die Werte aus den Textboxen noch brauche), und dann mit AddWindow() Die neuen StaticTexte und Button einfuegen.

F: Fuer dass hier weiss ich nicht ob boxseizer.detach(textbox) zBsp. die TextBox nur Rausschmeisst und dass window vom Sizer behaelt oder ob es auch in zerstoert. Wenn er nicht verstoert wird bin ich in Gefahr da zu viele Windows sich anhaeufen.

3) Ich dachte mir auch ob es sinnvoll waere die Windows im Sizer in ruhe zu lassen und und nach Bedarf wenn ich eine Textbox brauche sie nur Sichtbar mache. Ich versuchte es mit Statictext.SetTransparent(), aber es klapt nicht.

Bei jedem von diesen Versuchen versuchte ich es auch mit boxsizer.Layout(), aber es klappte nicht.

4) Jetzt is mir eingefallen es mir mehreren Panels zu versuchen und sie dann nur im Sizer ersaetzen.


Code: Alles auswählen

#Boa:Frame:FrmMain

import wx
import wx.grid
from wx.lib.anchors import LayoutAnchors

def create(parent):
    return FrmMain(parent)

[wxID_FRMMAIN, wxID_FRMMAINGRIDPREGLED, wxID_FRMMAINPNLFILTERI, 
 wxID_FRMMAINPNLPREGLED, wxID_FRMMAINSTATICTEXT1, wxID_FRMMAINSTATICTEXT2, 
 wxID_FRMMAINSTATUSBAR, wxID_FRMMAINTBRMENI, wxID_FRMMAINTEXTCTRL1, 
 wxID_FRMMAINTEXTCTRL2, 
] = [wx.NewId() for _init_ctrls in range(10)]

[wxID_FRMMAINTBRMENITOOLDODATI, wxID_FRMMAINTBRMENITOOLSBRISATI, 
 wxID_FRMMAINTBRMENITOOLSCIJENA, wxID_FRMMAINTBRMENITOOLSFILTER, 
 wxID_FRMMAINTBRMENITOOLSISPISATI, wxID_FRMMAINTBRMENITOOLSIZLAZ, 
 wxID_FRMMAINTBRMENITOOLSKVADRATURA, wxID_FRMMAINTBRMENITOOLSLOKACIJA, 
 wxID_FRMMAINTBRMENITOOLSMEDIA, wxID_FRMMAINTBRMENITOOLSNEKTRETNINA, 
 wxID_FRMMAINTBRMENITOOLSODJAVITI, wxID_FRMMAINTBRMENITOOLSPROMIJENNITI, 
 wxID_FRMMAINTBRMENITOOLSRADOBLJE, wxID_FRMMAINTBRMENITOOLSUGOVOR, 
] = [wx.NewId() for _init_coll_tbrMeni_Tools in range(14)]

class FrmMain(wx.Frame):
    def _init_coll_boxSizer3_Items(self, parent):
        # generated method, don't edit

        parent.AddWindow(self.gridPregled, 1, border=15,
              flag=wx.EXPAND | wx.ALL)

    def _init_coll_boxSizer1_Items(self, parent):
        # generated method, don't edit

        parent.AddWindow(self.tbrMeni, 0, border=0, flag=wx.EXPAND)
        parent.AddWindow(self.pnlFilteri, 0, border=0, flag=wx.EXPAND)
        parent.AddWindow(self.pnlPregled, 1, border=0, flag=wx.EXPAND)
        parent.AddWindow(self.statusBar, 0, border=1, flag=wx.TOP | wx.EXPAND)

    def _init_coll_boxSizer2_Items(self, parent):
        # generated method, don't edit

        parent.AddWindow(self.staticText1, 0, border=0, flag=0)
        parent.AddWindow(self.textCtrl1, 0, border=0, flag=0)
        parent.AddWindow(self.staticText2, 0, border=0, flag=0)
        parent.AddWindow(self.textCtrl2, 0, border=0, flag=0)

    def _init_coll_tbrMeni_Tools(self, parent):
        # generated method, don't edit

        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/add.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/add.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLDODATI,
              kind=wx.ITEM_NORMAL, label='Dodati', longHelp='Dodati novi zapis',
              shortHelp='Dodati')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/pencil.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/pencil.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSPROMIJENNITI,
              kind=wx.ITEM_NORMAL, label='Promjeniti',
              longHelp='Promjeniti odabrani zaps', shortHelp='Promjeniti')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/bin.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/bin.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSBRISATI,
              kind=wx.ITEM_NORMAL, label='Brisati',
              longHelp='Brisati odabrani zapis', shortHelp='Brisati')
        parent.AddSeparator()
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/printer.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/printer.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSISPISATI,
              kind=wx.ITEM_NORMAL, label='Ispisati',
              longHelp='Ispisati odabrani zapis', shortHelp='Ispisati')
        parent.AddSeparator()
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/disconnect.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/disconnect.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSODJAVITI,
              kind=wx.ITEM_NORMAL, label='Odjava',
              longHelp='Odjaviti se kao korisnik', shortHelp='Odjava')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/cross.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/cross.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSIZLAZ,
              kind=wx.ITEM_NORMAL, label='Izlaz', longHelp='Zatvoriti Program',
              shortHelp='Kraj')
        parent.AddSeparator()
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/page.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/page.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSUGOVOR,
              kind=wx.ITEM_NORMAL, label='Ugovor',
              longHelp='Filtrianje prema vrsti ugovora', shortHelp='Ugovor')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/house.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/house.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSNEKTRETNINA,
              kind=wx.ITEM_NORMAL, label='Nekretnina',
              longHelp='Filtriranje prema vrsti nekretnine',
              shortHelp='Nekretnina')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/world.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/world.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSLOKACIJA,
              kind=wx.ITEM_NORMAL, label='Lokacija',
              longHelp='Filtriranje prema lokaciji', shortHelp='Lokacija')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/shape_handles.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/shape_handles.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSKVADRATURA,
              kind=wx.ITEM_NORMAL, label='Kvadratura',
              longHelp='Filtriranje prema kvadraturi', shortHelp='Kvadratura')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/calendar.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/calendar.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSRADOBLJE,
              kind=wx.ITEM_NORMAL, label='Razdoblje',
              longHelp='Filtriranje prema razdoblju', shortHelp='Razdoblje')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/money.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/money.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSCIJENA,
              kind=wx.ITEM_NORMAL, label='Cijena',
              longHelp='Filtriranje prema cijeni', shortHelp='Cijena')
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/camera.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/camera.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSMEDIA,
              kind=wx.ITEM_NORMAL, label='Media',
              longHelp='Filtriranje prema Mediji', shortHelp='Media')
        parent.AddSeparator()
        parent.DoAddTool(bitmap=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/tick.png',
              wx.BITMAP_TYPE_PNG),
              bmpDisabled=wx.Bitmap(u'D:/Documents/My Projects/wolf/Kvart/icons/tick.png',
              wx.BITMAP_TYPE_PNG), id=wxID_FRMMAINTBRMENITOOLSFILTER,
              kind=wx.ITEM_NORMAL, label='Filtrirati',
              longHelp='Filtrirati prema ograni\xe8enjima',
              shortHelp='Filtrirati')
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniTooldodatiTool,
              id=wxID_FRMMAINTBRMENITOOLDODATI)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolspromijennitiTool,
              id=wxID_FRMMAINTBRMENITOOLSPROMIJENNITI)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsbrisatiTool,
              id=wxID_FRMMAINTBRMENITOOLSBRISATI)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsispisatiTool,
              id=wxID_FRMMAINTBRMENITOOLSISPISATI)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsodjavitiTool,
              id=wxID_FRMMAINTBRMENITOOLSODJAVITI)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsizlazTool,
              id=wxID_FRMMAINTBRMENITOOLSIZLAZ)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsugovorTool,
              id=wxID_FRMMAINTBRMENITOOLSUGOVOR)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsnektretninaTool,
              id=wxID_FRMMAINTBRMENITOOLSNEKTRETNINA)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolslokacijaTool,
              id=wxID_FRMMAINTBRMENITOOLSLOKACIJA)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolskvadraturaTool,
              id=wxID_FRMMAINTBRMENITOOLSKVADRATURA)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsradobljeTool,
              id=wxID_FRMMAINTBRMENITOOLSRADOBLJE)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolscijenaTool,
              id=wxID_FRMMAINTBRMENITOOLSCIJENA)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsmediaTool,
              id=wxID_FRMMAINTBRMENITOOLSMEDIA)
        self.Bind(wx.EVT_TOOL, self.OnTbrMeniToolsfilterTool,
              id=wxID_FRMMAINTBRMENITOOLSFILTER)

        parent.Realize()

    def _init_sizers(self):
        # generated method, don't edit
        self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL)

        self.boxSizer2 = wx.BoxSizer(orient=wx.HORIZONTAL)

        self.boxSizer3 = wx.BoxSizer(orient=wx.VERTICAL)

        self._init_coll_boxSizer1_Items(self.boxSizer1)
        self._init_coll_boxSizer2_Items(self.boxSizer2)
        self._init_coll_boxSizer3_Items(self.boxSizer3)

        self.SetSizer(self.boxSizer1)
        self.pnlPregled.SetSizer(self.boxSizer3)
        self.pnlFilteri.SetSizer(self.boxSizer2)

    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FRMMAIN, name='FrmMain', parent=prnt,
              pos=wx.Point(1463, -134), size=wx.Size(920, 511),
              style=wx.DEFAULT_FRAME_STYLE, title='Pregled')
        self.SetClientSize(wx.Size(912, 477))
        self.SetBackgroundColour(wx.Colour(128, 128, 128))

        self.tbrMeni = wx.ToolBar(id=wxID_FRMMAINTBRMENI, name='tbrMeni',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(912, 38),
              style=wx.TB_FLAT | wx.NO_3D | wx.TB_TEXT | wx.TB_3DBUTTONS | wx.TB_HORIZONTAL | wx.NO_BORDER)
        self.tbrMeni.SetBackgroundColour(wx.Colour(128, 128, 128))
        self.tbrMeni.SetToolSeparation(0)
        self.tbrMeni.SetToolPacking(0)
        self.tbrMeni.SetConstraints(LayoutAnchors(self.tbrMeni, True, True,
              True, False))
        self.tbrMeni.SetToolTipString('tbrMeni')

        self.pnlPregled = wx.Panel(id=wxID_FRMMAINPNLPREGLED, name='pnlPregled',
              parent=self, pos=wx.Point(0, 82), size=wx.Size(912, 371),
              style=wx.TAB_TRAVERSAL)

        self.pnlFilteri = wx.Panel(id=wxID_FRMMAINPNLFILTERI, name='pnlFilteri',
              parent=self, pos=wx.Point(0, 38), size=wx.Size(912, 44),
              style=wx.TAB_TRAVERSAL)
        self.pnlFilteri.SetBackgroundColour(wx.Colour(178, 178, 178))

        self.gridPregled = wx.grid.Grid(id=wxID_FRMMAINGRIDPREGLED,
              name='gridPregled', parent=self.pnlPregled, pos=wx.Point(15, 15),
              size=wx.Size(882, 341), style=0)
        self.gridPregled.SetRowLabelSize(60)
        self.gridPregled.SetColLabelSize(35)

        self.statusBar = wx.StatusBar(id=wxID_FRMMAINSTATUSBAR,
              name='statusBar', parent=self, style=0)
        self.statusBar.SetStatusText('Pregled')
        self.statusBar.SetBackgroundColour(wx.Colour(144, 144, 144))
        self.statusBar.SetBackgroundStyle(wx.BG_STYLE_COLOUR)
        self.statusBar.SetWindowVariant(wx.WINDOW_VARIANT_NORMAL)

        self.staticText1 = wx.StaticText(id=wxID_FRMMAINSTATICTEXT1,
              label='staticText1', name='staticText1', parent=self.pnlFilteri,
              pos=wx.Point(0, 0), size=wx.Size(54, 13), style=0)

        self.staticText2 = wx.StaticText(id=wxID_FRMMAINSTATICTEXT2,
              label='staticText2', name='staticText2', parent=self.pnlFilteri,
              pos=wx.Point(154, 0), size=wx.Size(54, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_FRMMAINTEXTCTRL1, name='textCtrl1',
              parent=self.pnlFilteri, pos=wx.Point(54, 0), size=wx.Size(100,
              21), style=0, value='textCtrl1')

        self.textCtrl2 = wx.TextCtrl(id=wxID_FRMMAINTEXTCTRL2, name='textCtrl2',
              parent=self.pnlFilteri, pos=wx.Point(208, 0), size=wx.Size(100,
              21), style=0, value='textCtrl2')

        self._init_coll_tbrMeni_Tools(self.tbrMeni)

        self._init_sizers()

    def __init__(self, parent):
        self._init_ctrls(parent)

    def OnTbrMeniTooldodatiTool(self, event):
        self.boxSizer2.Clear()
        self.boxSizer2.Layout()
        print "dodati"
        event.Skip()

    def OnTbrMeniToolspromijennitiTool(self, event):
        self.boxSizer2.Remove(self.staticText1)
        self.boxSizer2.Layout()
        print "Promjeniti"
        event.Skip()

    def OnTbrMeniToolsbrisatiTool(self, event):
        self.boxSizer2.
        self.boxSizer2.Layout()
        print "Brisati"
        event.Skip()

    def OnTbrMeniToolsispisatiTool(self, event):
        
        event.Skip()

    def OnTbrMeniToolsodjavitiTool(self, event):
        event.Skip()

    def OnTbrMeniToolsizlazTool(self, event):
        event.Skip()

    def OnTbrMeniToolsugovorTool(self, event):
        event.Skip()

    def OnTbrMeniToolsnektretninaTool(self, event):
        event.Skip()

    def OnTbrMeniToolslokacijaTool(self, event):
        event.Skip()

    def OnTbrMeniToolskvadraturaTool(self, event):
        event.Skip()

    def OnTbrMeniToolsradobljeTool(self, event):
        event.Skip()

    def OnTbrMeniToolscijenaTool(self, event):
        event.Skip()

    def OnTbrMeniToolsmediaTool(self, event):
        event.Skip()

    def OnTbrMeniToolsfilterTool(self, event):
        event.Skip()




Ich brauche wirklich Rat bei diesem.

Die Icons koennt iht hier runterladen:

http://www.famfamfam.com/lab/icons/silk ... s_v013.zip


Bitte um rat.


Danke
Antworten