在Python中使用多个框架的Destop应用程序!

2024-06-16 15:58:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Delphi/Pascal开发了许多桌面应用程序- 这里我用了情态形式。在

//Mainform
Form1:= TForm1.Create(Self);  
If Form1.Showmodal =mrOK then ….  
In Form1 you cal call vars in Mainform like mainform.X := 1  

(我知道——我通常使用try,除了finally)

现在我将切换到Python,我的问题是:

我想要一个有主窗口(框架)的应用程序,在这里你可以调用许多表单,这些表单可以有表单等等

我可以用python和wxpython编写一个程序,其中一个主框架创建一个新的框架并显示它——但是我如何返回——以及如何引用父框架——如果可能的话!在

从主窗体

^{pr2}$

当我在main2完成后,我要谁返回mainform–它是隐藏的!!在

我知道我可以使用对话,但我需要一个正常的框架!! 我要找的是一个有主机的小程序,有一个调用框架(Frame1)的按钮调用一个框架(Frame1A)的按钮

我是Python的新手,但在C、C++、Pascal中已经做了很多应用 我看过几乎所有的演示,但没有一个能给我一个提示!在

问候 米克


Tags: 程序框架应用程序表单create按钮桌面形式
2条回答

只是好奇,为什么你不能用对话?在

无论如何,一个简单的解决方案是为Frame2的构造函数提供一个回调函数,当Frame2即将关闭时调用该函数。在


class Frame2(wx.wxFrame):
    def __init__(self, parent, callback, ...)
        wx.wxFrame(self, parent)
        self._callback = callback
        self.bind(wx.EVT_CLOSE, self.OnClose(), self)

    def OnClose():
        self.Destroy()
        self._callback()
^{pr2}$

上面的代码只是一个提示,从未经过测试!在

有几种主要的方法可以得到一个参考框架。创建次帧时,可以传递它们“无”或父帧。如果将主帧作为父帧传递,则可以轻松地引用它。在

或者,您可以这样做:

顶框=wx.gettolevelparent()

至于显示第二帧并隐藏主帧,我要做的是使用Pubsub。当我打开次框架时,我隐藏了主框架。当我关闭次框架时,它向被捕获的隐藏主框架发送一个pubsub消息,主框架被重新显示。在

wxpythonwiki上有很多pubsub示例。我还写了一篇文章:

http://www.blog.pythonlibrary.org/2010/06/27/wxpython-and-pubsub-a-simple-tutorial/

希望有帮助!在

相关问题 更多 >