我有一个对话框应用程序和一个框架应用程序(两个文件),我希望它们相互交互。
我想单击对话框应用程序上的按钮,它将关闭对话框应用程序并打开我的框架应用程序。知道如何实现这个目标吗?
我的对话框应用非常简单,看起来像这样
class ThisClass(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title, size=(APP_SIZE_X, APP_SIZE_Y))
wx.Button(self, 1, 'Start Monitoring', (50, 20), (120,-1))
wx.Button(self, 2, 'View Data', (50, 70), (120, -1))
wx.Button(self, 3, 'Close', (50, 120), (120, -1))
self.Bind(wx.EVT_BUTTON, self.idk1, id=1)
self.Bind(wx.EVT_BUTTON, self.idk2, id=2)
self.Bind(wx.EVT_BUTTON, self.clickClose, id=3)
self.Centre()
self.ShowModal()
def idk1(self,event):
#i want to launch another app here if
#this (Start Monitoring) button is pressed
def idk2(self, event):
self.Close(True)
def clickClose(self, event):
self.Close(True)
app = wx.App(0)
MyButtons(None, -1, 'buttons.py')
app.MainLoop()
由于
答案 0 :(得分:1)
您需要在Dialog应用程序周围创建一个框架,这样就不会有奇怪的行为。没有人说你必须表明它:
class ThisFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(0, 0))
dlg = ThisClass(self, -1, "buttons.py")
if dlg.ShowModal() == 1:
from otherfile import MyFrame
mf = MyFrame(self, "MyFrame")
mf.Show()
app = wx.App(0)
frame = ThisFrame(None, 'ThisFrame')
app.MainLoop()
在idk1方法中,调用self.EndModal(1)返回已知值。现在,在某些时候你必须弄清楚如何干净地销毁你的应用程序,但我想你可以从这里得到它!