【问题标题】:WxPython custom popup windowWxPython 自定义弹出窗口
【发布时间】:2019-10-07 16:43:20
【问题描述】:

我正在尝试制作一个自定义窗口,它的作用类似于弹出窗口,并在失去焦点时关闭(点击弹出窗口外部)。

我有一个包含几个可点击图像的框架。如果单击其中一个图像,则会出现一个框架。此框架是一个基类,其内容(文本控件、网格、按钮等)会根据您单击的图像进行替换。我的问题是我应该在哪里捕捉什么事件。

我将尝试使用示例/伪代码进行简化。

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,但它们显然有一个不允许单选按钮的错误,这使它们对我来说毫无用处。

如果我没有任何意义,请告诉我,我会尽力解释得更好。

【问题讨论】:

    标签: python python-3.x wxwidgets


    【解决方案1】:

    为此目的使用wxEVT_ACTIVATE(可能在wxPython 中使用wx.EVT_ACTIVATE)。

    认为弹出窗口中的单选按钮问题已在后备箱中修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 2011-05-08
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多