Seite 1 von 1

Button löschen

Verfasst: Freitag 15. Januar 2010, 12:05
von zahi
hallo zusammen

ich hab eine frage gibs in wxpython eine funktion oder ein befehl um einen button den man erstellt hat in einem panel
wieder löschen durch einen anderen befehl?

Verfasst: Freitag 15. Januar 2010, 12:10
von jbs
Ich meine Destroy. Bin mir aber gerade nicht sicher.

Verfasst: Freitag 15. Januar 2010, 14:33
von zahi
ich hatte mach button und destroy gegeoogelt und ich find nix :(
ich will in einer funktion einen button erstellen und in einer andere sie wieder löschen aber ich krieg es nicht hin :(

Verfasst: Freitag 15. Januar 2010, 14:45
von BlackJack
@zahi: Statt im ganzen Netz zu suchen, ist die wxPython-Dokumentation vielleicht der bessere, zumindest aber der direktere Weg: http://www.wxpython.org/docs/api/wx.Button-class.html

Und wenn man da die Typhierachie raufgeht, findet man auch eine `Destroy()`-Methode.

Verfasst: Freitag 15. Januar 2010, 15:25
von Masaru
Unter wxPython 2.8 (mit Python 2.6) z.B. funktioniert es mittels .Destroy() ohne Probleme.

Aber warum gleich zerstören? Tut's nicht ein verstecken mittels .Hide() auch?

Code: Alles auswählen

...
    def __init__(self):
        # Setup 'Hide me' button.
        self.hide_btn = wx.Button(panel, 1003, "Hide me")
        self.Bind(wx.EVT_BUTTON, self.OnHideMe, self.hide_btn)
		
		# Setup 'Destroy me' button.
        self.destroy_btn= wx.Button(panel, 1004, "Destroy me")
        self.destroy_btn.SetPosition(self.hide_btn.GetPosition() + (0, 30))
        self.Bind(wx.EVT_BUTTON, self.OnDestroyMe, self.destroy_btn)

    def OnHideMe(self, event):
        self.hide_btn.Hide()
		
	def OnDestroyMe(self, event):
        self.destroy_btn.Destroy()
...
>>Masaru<<

Verfasst: Freitag 15. Januar 2010, 20:38
von zahi
weil ich an der selben stelle eine anderen button erscheinen lassen will deswegen destroy nur jetzt hab ich ein anderes technisches problem
mein button wird in einer unterfunktion erstellt
und nun wollt ich es in einer anderen unterfunktion wieder entfernen aber das geht nicht weil meine main panel die buttons nicht kennt

Verfasst: Freitag 15. Januar 2010, 21:12
von zahi
Kann man in wxpython eine variable für eine funktion deklarieren ?bzw vorgeben das es sozusagen im Main es schon angegeben wird und es erst in eine unterfunktion der eigentliche button erstellt wird?

Verfasst: Freitag 15. Januar 2010, 21:32
von jbs
Was hast du denn überhaupt vor?

Ist es nicht einfacher den Button zu ändern?

Verfasst: Freitag 15. Januar 2010, 21:41
von zahi
also ich will das duch auswahl in einer listbox der wert das in der listbox steht in den button als bezeichnung geladen wird nur wen ich dan eine zweite auswahl treffe dan überlagert sich der button
und dan sieht man nicht was da stehen soll.
die struktur meines programms im groben sieht so aus
ich zeige das mal bissel C code mässig mit {}

main {

self. listbox


}

def listbox{

listboxvariable = listbox(...)
bind.event (self.button)

}


def button {

hier wird der button erstellt mit dem werten von der listbox


}

Verfasst: Freitag 15. Januar 2010, 21:54
von zahi
ich weiss ich denk bisschen zu kompliziert
vllt kann ich die auswahl aus der list in eine text box oder so anzeigen lassen aber ich will auch ein event auslösen wen ich auf diese box klicke deswegen der button

Verfasst: Freitag 15. Januar 2010, 23:10
von jbs
Es gibt Python-Tags.

Warum so kompliziert? Mit `SetLabel` kannst du die Beschriftung ändern.