ohne die Möglichkeit, Ihren Code zu sehen, es ist schwierig zu wissen.
Ich hoffe, dieses kleine Beispiel für die Definition eines eigenen Ereignisses wird Ihnen erlauben, es auszuarbeiten. Ich muss zugeben, es hat mich eine Weile gedauert, bis ich mich erstmal darum gekümmert habe.
import wx
import wx.lib.newevent
NewEvent, EVT_MY_EVENT = wx.lib.newevent.NewEvent()
CMD_ID = wx.NewId()
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame()
return True
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None, title="Window", pos = (100,150), size =(250,200))
sizer = wx.BoxSizer()
self.button1 = wx.Button(self, CMD_ID, label="Button 1")
sizer.Add(self.button1)
self.Bind(wx.EVT_BUTTON, self.OnButton,id=CMD_ID)
self.Bind(EVT_MY_EVENT, self.OnMyEvent)
self.Layout()
self.Show()
def OnButton(self, event):
id = event.GetId()
event = NewEvent(action="perform a defined action",button=id,other_setting=1234)
wx.PostEvent(self, event)
def OnMyEvent(self, event):
button = event.button
action = event.action
other = event.other_setting
print "event button number", button
print "event action request", action
print "event other", other
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
Haben Sie ein funktionierendes Beispiel für "Ein Ereignis manuell auslösen"? – olekb
Dieser Link tut. Auf halbem Weg die Seite. Suchen Sie nach wx.PostEvent. Sie erstellen das Ereignis und rufen dann wx.PostEvent (target_window, evt) auf – user2682863
Link ist ein Dokument, ich kann doc finden. Ich brauche ein paar Zeilen Code, die meine Frage – olekb