如何将2个函数绑定到单个偶数

2024-10-01 09:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个束缚”自我约束(wx.EVT_列表框, self.selload文件,列表框“。我该如何添加另一个函数,我想这就是你所说的。就像self.selload文件,如何向同一事件添加另一个函数?我正在制作一个音乐播放器,希望文件被选中后自动播放。这个self.selload文件函数加载文件,如何添加“自我。玩“同一evt的功能?在

提前谢谢!!在

对不起,我不熟悉编程。你能帮我一下吗?所以如果我的职能是:

def selLoadFile(self, event):
        my_selection = self.myListBox.GetStringSelection()
        file_path = os.path.join(os.getcwd(),"songs",my_selection)
        self.doLoadFile2(file_path)

def doLoadFile2(self, file_path):
    if not self.mc.Load(file_path):
        wx.MessageBox("Unable to load %s: Unsupported format?" % file_path, "ERROR", wx.ICON_ERROR | wx.OK)

    else:
        folder, filename = os.path.split(file_path)
        self.st_file.SetLabel('%s' % filename)
        self.mc.SetBestFittingSize()
        self.mc.Play()

def Play(self, event):
    self.mc.Play()
    self.playbackSlider.SetRange(0,self.mc.Length())

如何在一个函数中包含上述3个函数?在


Tags: 文件path函数selfeventplayosmy
1条回答
网友
1楼 · 发布于 2024-10-01 09:24:13

如果您想将一个小部件绑定到两个事件处理程序,那么就这样做。只要您在处理程序代码的末尾调用event.Skip(),就可以了。没有这一行,事件将由第一个处理程序使用,而不会被任何其他处理程序捕获。这里有一个愚蠢的例子:

import wx

########################################################################
class MyPanel(wx.Panel):
    """"""

    #                                   
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)
        btn = wx.Button(self, label="Press Me")
        btn.Bind(wx.EVT_BUTTON, self.HandlerOne)
        btn.Bind(wx.EVT_BUTTON, self.HandlerTwo)

    #                                   
    def HandlerOne(self, event):
        """"""
        print "handler one fired!"
        event.Skip()

    #                                   
    def HandlerTwo(self, event):
        """"""
        print "handler two fired!"
        event.Skip()

########################################################################
class MyFrame(wx.Frame):
    """."""

    #                                   
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Test")
        panel = MyPanel(self)
        self.Show()

if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()

相关问题 更多 >