0

我有一个 wxPython 项目,它在 Windows 7 中显示出一些奇怪的症状(在 Mac OS X 上一切正常,Windows 7 是我们针对此版本测试的唯一 win 版本)。该应用程序有一个 wx.TaskBarIcon 的子类,它带有一个右键菜单,该菜单应创建应始终位于顶部的窗口。每个窗口都是 wxFormBuilder 创建的 wx.Frame 或 wx.Dialog 的子类。

有时,我找不到重现它的步骤,窗口不显示并且不能被调用到前面。应用程序的图标将出现在任务栏中,但不会出现窗口。单击该图标不会执行任何操作,即使关闭所有其他窗口也不会显示该窗口。

我当前如何显示窗口的片​​段:

#Initialization code, calling super's __init__ etc.
self.Center()
self.Show()
self.SetWindowStyle( self.GetWindowStyle() | wx.STAY_ON_TOP )

由于我无法重现调试问题,因此很难。我试过在 self.Show 之后调用 self.Raise 和 self.SetFocus ,但问题不时出现。有没有人遇到过类似的 wxPython 问题或知道任何可能的解决方法?

4

1 回答 1

1

我记得,您通常无法在初始化后可靠地更改 Frame 样式。您应该将 STAY_ON_TOP 样式标志放在 Frame 的 init 中。对于对话框,使用 ShowModal()。现在我考虑了一下,您还可以使用框架的 MakeModal() 方法,这可能也可以。

于 2012-07-17T13:30:09.193 回答