2010-07-11 1 views
0

Мне удалось заставить его работать на Win32 (наследующий от wx.MiniFrame делает трюк), на wxGTK (wx.PopupWindow), но все, что я пытаюсь, когда я создайте кадр на wxMac, мое главное окно теряет фокус, и новый кадр получает его.wxPython на Mac OS X: создание wx.Frame без кражи фокуса

wxMac, похоже, не имеет возможности взаимодействовать с собственной платформой (что-то вроде GetHandle() на Win32 и GetGTKWidget() на wxGTK), поэтому я не могу его обманывать.

Мне удалось заставить эту работу работать в другой ситуации, создав фрейм при запуске и перемещая его за пределы области отображения, а затем перемещая его в видимом месте, когда это необходимо. Но сейчас это было бы громоздким, потому что я заранее не знаю, сколько кадров мне понадобится.

Итак, любой более простой способ сделать это?

ответ

0

Если вы хотите, чтобы получить нативный дескриптор окна в Mac вы можете сделать

frame.MacGetTopLevelWindowRef() 

и может быть, вы можете использовать pyobjc взаимодействовать с окнами изначально, но почему бы вам не установить фокус на окне хотите после открытия мини-рамки?

+0

Потому что это не работает. Я пробовал много вещей, основанных на SetFocus() в разные моменты, и ни один из них не возвращает фокус основному кадру. – fraca7

+0

Хорошо, это функция, которую я искал. Теперь, пытаясь получить некоторую фактическую документацию об углероде и использовать ctypes ... – fraca7