从wxPython启动外部应用程序

从wxPython启动外部应用程序,wxpython,Wxpython,是否可以从wxPython应用程序中启动另一个应用程序?例如,如果我有一个pdf文件列表,用户可以双击其中的一个,让用户注册pdf文件应用程序来打开并显示内容吗?我建议使用Python的os模块,只需调用os.startfile(path)。您也可以使用子流程模块进行此操作 有关文件选择器的第二个问题,请参阅您可以在此处阅读的有关文件选择器的详细信息: wx.LaunchDefaultBrowser(url,flags=0)是您正在寻找的功能。 i、 e 谢谢你。我可以要求跟进吗。wxpyt

是否可以从wxPython应用程序中启动另一个应用程序?例如,如果我有一个pdf文件列表,用户可以双击其中的一个,让用户注册pdf文件应用程序来打开并显示内容吗?

我建议使用Python的
os
模块,只需调用
os.startfile(path)
。您也可以使用
子流程
模块进行此操作

有关文件选择器的第二个问题,请参阅您可以在此处阅读的有关文件选择器的详细信息:


wx.LaunchDefaultBrowser(url,flags=0)
是您正在寻找的功能。
i、 e


谢谢你。我可以要求跟进吗。wxpython为filepicker列出了一个UI,但它没有显示在glide Designer上。它是wx.FileDialog,但我不清楚如何在wxGlade中将其作为一个选项使用
import  wx

class MyPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, id=-1)
        sizer = wx.BoxSizer(wx.VERTICAL)
        btn = wx.Button(self, wx.NewId(), "Open PDF File",size=(20,50))
        self.Bind(wx.EVT_BUTTON, self.OnOpenButton, btn)
        sizer.Add(btn, 0, flag=wx.EXPAND|wx.ALL)
        self.SetSizer(sizer)

    def OnOpenButton(self, event):
        dlg = wx.FileDialog(self, wildcard="*.pdf")
        if dlg.ShowModal() == wx.ID_OK:
            url = dlg.GetPath()
        dlg.Destroy()
        try:
            if not url:
                return
        except:
            return
        wx.LaunchDefaultBrowser(url)

app = wx.App()
frame = wx.Frame(None, -1, "PDF Default Browser", size = (640, 480))
MyPanel(frame)
frame.Show(True)
app.MainLoop()