我正在尝试制作一个自定义窗口,其作用类似于弹出窗口,并在失去焦点时关闭(在弹出窗口之外单击)。
我有一个带有多个可点击图像的框架。如果单击其中一张图像,将显示一个框。此框架是基本类,其内容(文本控件,网格,按钮e.t.c)将根据您单击的图像进行替换。我的问题是应该在哪里捕获什么事件。
我将尝试通过示例/伪代码来简化。
class MainFrame(MainFrameDefinition):
# unimportant code
custom_frame_holder = CustomFrame()
for child_panel in self.lots_of_panels:
# add a panel to a map and set
custom_frame_holder.panel = child_panel
class CustomFrame(wx.Frame):
def __init__(self, parent):
# unimportant code
self.panel = # a panel that changes
self.Bind(wx.EVT_KILL_FOCUS, self.lost_focus)
def lost_focus(self, event):
self.Hide()
那么军官问题似乎是什么?当我单击CustomFrame中的控件时,框架失去焦点,窗口将隐藏。 我尝试捕获EVT_CHILD_FOCUS,然后将焦点设置回框架,但是,由于框架具有焦点,因此我无法用文本控件编写文本。
我看过wxPopup和wxTransientPopup,但是它们显然有一个不允许单选按钮的错误,这使它们对我毫无用处。
让我知道我是否没有道理,我会尽力解释得更好。
答案 0 :(得分:0)
为此目的使用wxEVT_ACTIVATE
(可能在wx.EVT_ACTIVATE
中使用wxPython
)。
我认为弹出窗口中的单选按钮问题已在行李箱中修复。