Я пытаюсь запустить приложение wxPython, но я хочу, чтобы баннер отображался перед его запуском.wxPython: Как запустить приложение wxPython из приложения wxPython?
Один из способов сделать это - запустить приложение wxPython, которое, в свою очередь, запустит другое приложение wxPython, причина этого делается потому, что часть приложения второго приложения wxPython должна выполнить некоторую обработку перед запуском и может принять когда-то.
Проблема в том, как запустить другое приложение и узнать, что он запущен?
В настоящее время я делаю это, какие блоки для всего сеанса работы с графическим интерфейсом:
subprocess.check_output(["python", "src/gui.py"], stderr=subprocess.STDOUT, shell=True)
Я попытался сделать следующее, но кадр первого приложения, кажется, не закрывать:
loadCompleted, EVT_LOAD_COMPLETED = wx.lib.newevent.NewEvent()
class MyRegion(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="My Region")
self.label = wx.StaticText(self, label="Hello, World!")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.label, 0, wx.ALL, 5)
self.SetSizer(sizer)
self.startThread = Thread(target=self.Start)
self.startThread.start()
self.Bind(EVT_LOAD_COMPLETED, self.OnClose)
def OnClose(self, result):
self.Close()
def Start(self):
try:
subprocess.check_output(["python", "src/gui.py"], stderr=subprocess.STDOUT, shell=True)
except:
pass
wx.PostEvent(self, loadCompleted(result=(None)))
if __name__ == "__main__":
app = wx.App()
frame = MyRegion(None)
frame.Show()
app.MainLoop()