wxPython Mac OS X Полноэкранная работа вокруг ошибки

I was trying to get fullscreen support for a wxPython app using the code in the answer from this stackoverflow question wxPython MacOS X Lion full screen mode

Моя ошибка

Traceback (most recent call last):
  File "test_mac_fullscreen.py", line 36, in 
    frame = Frame()
  File "test_mac_fullscreen.py", line 29, in __init__
    SetFullScreenCapable(self)
  File "test_mac_fullscreen.py", line 16, in SetFullScreenCapable
    window = frameobj.window()
AttributeError: 'NSHIObject' object has no attribute 'window'

Мой код (просто скопирован и вставлен в один файл из приведенной выше ссылки)

# from https://stackoverflow.com/questions/12328143/getting-pyobjc-object-from-integer-id
import ctypes, objc
_objc = ctypes.PyDLL(objc._objc.__file__)

# PyObject *PyObjCObject_New(id objc_object, int flags, int retain)
_objc.PyObjCObject_New.restype = ctypes.py_object
_objc.PyObjCObject_New.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int]

def objc_object(id):
    return _objc.PyObjCObject_New(id, 0, 1)

def SetFullScreenCapable(frame):
    frameobj = objc_object(frame.GetHandle())

    NSWindowCollectionBehaviorFullScreenPrimary = 1<<7
    window = frameobj.window()
    newBehavior = window.collectionBehavior() | NSWindowCollectionBehaviorFullScreenPrimary
    window.setCollectionBehavior_(newBehavior)

import wxversion
wxversion.select('2-osx_cocoa') # require Cocoa version of wxWidgets
import wx

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        wx.Button(self, label="Hello!") # test button to demonstrate full-screen resizing
        SetFullScreenCapable(self)

    def OnClose(self, event):
        print "Closing"
        exit()
if __name__ == "__main__":
    app = wx.App(False)
    frame = Frame()
    frame.Show()
    app.MainLoop()
    print "running app loop"
0
nl ja de
Хм, странно, ты бежишь на Горного Льва?
добавлено автор Zimm3r, источник
Попробуйте комментировать этот конкретный ответ в связанном вопросе, вы можете получить хороший ответ от автора цитируемого кода.
добавлено автор bouke, источник
Этот код работает для меня без ошибок.
добавлено автор Gerald Spreer, источник

1 ответы

Хотя это довольно поздно, недавно глядя на это, он неожиданно щелкнул.

Если вы заметили в ошибке, то указывается класс NSHIObject (HI, которого я предполагаю, означает Human Interface), это связано с бэкэнд, который использует wxPython, архаичный Carbon (как в данном случае) или обновленный Cocoa. В более ранних версиях был доступен только Carbon, но с 2,9,5 (IIRC) имеется какао (и я считаю, что его смысл переместился в 3.0 с помощью какао или углерода). Просто переустановите с версией какао, и она работает.

1
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

macOS — русскоговорящее сообщество
macOS — русскоговорящее сообщество
693 участник(ов)

Обсуждаем всё, что связано с экосистемой macOS и продуктами Apple.

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

macOS Developers — русскоговорящее сообщество
macOS Developers — русскоговорящее сообщество
124 участник(ов)

По всем остальным macOS / Apple вопросам в @macOS_ru Обсуждаем всё, что связано с разработкой под macOS.