Запустите внешнее приложение из wxPython - PullRequest
0 голосов
/ 23 января 2019

Можно ли запустить другое приложение из приложения wxPython? Например, если у меня есть список файлов pdf, может ли пользователь дважды щелкнуть 1 из них, чтобы пользователи зарегистрировали приложение pdf, чтобы открыть и отобразить содержимое?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

wx.LaunchDefaultBrowser(url, flags=0) - это функция, которую вы ищете.
т.е.

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()
0 голосов
/ 24 января 2019

Я бы порекомендовал использовать модуль Python os, просто позвонив os.startfile(path). Для этого вы также можете использовать модуль subprocess.

Ваш второй вопрос о средстве выбора файлов см., Вероятно, хотите wx.FileDialog, о котором вы можете прочитать подробнее здесь:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...