0

我使用 wxPython 创建了一个简单的音乐播放器,它有一个 Frame 和一个 Panel 并使用这里给出的教程播放音乐。

此外,我还为此添加了一个播放列表功能,它使用ObjectListView并显示.m3u文件中的所有曲目。这个 playList 是一个单独的 python 模块,它

class MainPanel(wx.Panel):

def __init__(self, parent, playListSelected):
    //stuff

def GetOLVColClicked(self, event):
    item = event.GetEventObject().GetSelectedObjects()
    print item[0]['path']

class MainFrame(wx.Frame):
    def __init__(self, playList):
        wx.Frame.__init__(self, parent=None, id=wx.ID_ANY, 
                      title="ObjectListView Demo", size=(800,600))
        panel = MainPanel(self, playList)

class GenApp(wx.App):
    def __init__(self, playList, redirect=False, filename=None):
        self.playList = playList
        wx.App.__init__(self, redirect, filename)

    def OnInit(self):
        frame = MainFrame(self.playList)
        frame.Show()
        return True

单击播放列表中的任何曲目时,我可以获得歌曲的整个路径。我想知道如何将这首歌发送到现有的音乐播放器并播放。还是这种方法是错误的,是否有更好的方法来容纳播放列表?

4

1 回答 1

2

这种方法非常接近我在思考如何增强自己的 mp3 播放器时的想法。在类之间传递信息,我认为 pubsub 是迄今为止最优雅的解决方案,即使它有点神奇。你可以阅读我关于这个主题的教程,或者你可以在 wxPython wiki 上阅读它:

于 2013-03-14T13:42:14.680 回答