【问题标题】:wxPython on Mac OS X: creating a wx.Frame without stealing focusMac OS X 上的 wxPython:在不窃取焦点的情况下创建 wx.Frame
【发布时间】:2010-07-11 11:44:48
【问题描述】:

我设法让它在 Win32 上工作(从 wx.MiniFrame 继承就可以了),在 wxGTK (wx.PopupWindow) 上,但无论我尝试什么,当我在 wxMac 上创建一个框架时,我的主窗口失去焦点并且新的框架得到它。

wxMac 似乎没有办法与本机平台交互(例如 Win32 上的 GetHandle() 和 wxGTK 上的 GetGTKWidget()),所以我无法通过这种方式破解它。

我设法让它在另一种情况下工作,通过在启动时创建框架并将其移动到显示区域之外,然后在需要时将其移动到可见位置。但是现在这会很麻烦,因为我事先不知道我需要多少帧。

那么,有更简单的方法吗?

【问题讨论】:

    标签: python macos wxpython pyobjc


    【解决方案1】:

    如果你想在 Mac 中获得本地窗口句柄,你可以这样做

    frame.MacGetTopLevelWindowRef()
    

    也许你可以使用pyobjc与窗口进行原生交互,但是你为什么不在打开迷你框架后将焦点设置在你想要的窗口上呢?

    【讨论】:

    • 因为它不起作用。我在不同的时刻尝试了很多基于 SetFocus() 的东西,但没有一个真正将焦点返回到主框架。
    • 好的,这就是我要找的功能。现在尝试获取有关 Carbon 的一些实际文档并使用 ctypes...
    猜你喜欢
    • 2011-01-08
    • 2015-08-01
    • 2012-03-16
    • 2015-06-12
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多