gpt4 book ai didi

python - 显示另一个窗口 wxpython?

转载 作者:行者123 更新时间:2023-11-28 20:27:37 25 4
gpt4 key购买 nike

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

我想我在使用 Show() 之前做了这个,但我不确定如何重复这个。

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

谢谢

最佳答案

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

enter image description here

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

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()

关于python - 显示另一个窗口 wxpython?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com