【问题标题】:Show another window wxpython?显示另一个窗口 wxpython?
【发布时间】:2012-01-06 00:05:24
【问题描述】:

我一直在浏览 Internet,但我不确定是否有办法在 2 个单独的窗口中显示 wxPython 中的 2 个类。我们可以在它们之间进行通信吗(比如一个类是对话框,另一个是主类)?

我想我在使用 Show() 之前已经这样做了,但我不知道如何重复。

所以基本上我希望能够有一个对话框,但使用一个类来代替。这将比使用模态对话框更强大。

谢谢

【问题讨论】:

    标签: python wxpython


    【解决方案1】:

    您还可以使用 pubsub 在两个框架之间进行通信。我在本文中展示了一种方法:http://www.blog.pythonlibrary.org/2010/06/27/wxpython-and-pubsub-a-simple-tutorial/

    如果您不希望第一帧隐藏自己,只需删除其中包含 Hide() 的行。

    【讨论】:

      【解决方案2】:

      这里有一个简单的两帧通信示例:

      诀窍在于发送对象引用以在帧之间共享,要么在另一个内部创建一个(如本例所示),要么通过一个共同的父级。 代码是:

      import wx
      
      class MainFrame(wx.Frame):
          def __init__(self):
              wx.Frame.__init__(self, None, size=(150,100), title='MainFrame')
              pan =wx.Panel(self)
              self.txt = wx.TextCtrl(pan, -1, pos=(0,0), size=(100,20), style=wx.DEFAULT)
              self.but = wx.Button(pan,-1, pos=(10,30), label='Tell child')
              self.Bind(wx.EVT_BUTTON, self.onbutton, self.but)
              self.child = ChildFrame(self)
              self.child.Show()
      
          def onbutton(self, evt):
              text = self.txt.GetValue()
              self.child.txt.write('Parent says: %s' %text)
      
      
      class ChildFrame(wx.Frame):
          def __init__(self, parent):
              wx.Frame.__init__(self, None, size=(150,100), title='ChildFrame')
              self.parent = parent
              pan = wx.Panel(self)
              self.txt = wx.TextCtrl(pan, -1, pos=(0,0), size=(100,20), style=wx.DEFAULT)
              self.but = wx.Button(pan,-1, pos=(10,30), label='Tell parent')
              self.Bind(wx.EVT_BUTTON, self.onbutton, self.but)
      
          def onbutton(self, evt):
              text = self.txt.GetValue()
              self.parent.txt.write('Child says: %s' %text)
      
      
      if __name__ == "__main__":
      
          App=wx.PySimpleApp()
          MainFrame().Show()
          App.MainLoop()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-02
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        相关资源
        最近更新 更多