我正在製作一個需要全屏工作的wxPython應用程序。我想使用OS X Lion中提供的新全屏模式。我怎樣才能讓全屏幕圖標出現在右上角?wxPython MacOS X Lion全屏模式
回答
直到bug #14357是固定的,沒有直接這樣做只使用我知道的wxPython函數。
但是,您可以繞過wxWidgets並直接訪問Cocoa API來執行您所需的操作。請注意,您必須使用wxMac/Cocoa綁定(wxPython 2.9或更高版本)必須。
這是代碼必須能夠做出一個幀全屏:
# from http://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):
exit()
app = wx.App()
frame = Frame()
frame.Show()
app.MainLoop()
當在python 2.7.2的MountainLion 10.8.2上使用你的上述代碼時,我得到一個AttributeError:'NSHIObject'對象沒有屬性'窗口'的整個代碼和錯誤在這裏http://stackoverflow.com/questions/14068923/ wxpython-mac-os-x-fullscreen-work-around-error#comment19955401_14068923我懷疑我錯過了一些東西,因爲我看不到爲什麼代碼會產生錯誤(以及爲什麼它沒有窗口屬性) – Zimm3r
I已經回答了它與碳或可可作爲後端的問題,請參閱問題的答案以獲取更多信息。 – Zimm3r
- 1. macOS上的Java UI X Lion
- 2. OS X Lion:全屏NSWindow誘餌&開關
- 3. Mac OS X Lion全屏幕事件
- 4. 256色模式xterm MacOS X
- 5. 以編程方式設置OS X Lion全屏桌面圖像
- 6. wxpython面板全屏?
- 7. OSX Lion:在全屏和窗口模式下的不同視圖
- 8. MacOS上的vscode:將導航菜單顯示爲全屏模式
- 9. 的wxPython:退出全屏
- 10. 在Mac OS X Lion上構建32位模式Lion
- 11. 在MacOS中,完全全屏Java
- 12. 如何知道NSWindow在Mac OS X Lion中是否全屏?
- 13. WPF全屏模式
- 14. Flex全屏模式
- 15. MigLayout全屏模式
- 16. 使用SDL在MacOS X上全屏顯示時OpenGL變慢?
- 17. 在多顯示器全屏MacOS X上清理OpenGL支持
- 18. 全屏模式下的Flex?
- 19. Wi-Fi直連MacOS Montain Lion
- 20. MacOS Mountain Lion Users命令dscl
- 21. 閃光舞臺全屏模式,動畫片段全屏模式?
- 22. Mac OS X上的Rubymine全屏模式的快捷方式
- 23. MAC OS Xcode Swift 2.2全屏模式
- 24. IDLE上的字符替代字符3.2.2 MacOS-X Lion
- 25. Mac OS X Lion:檢測其他應用程序是否以全屏模式運行?
- 26. 如何在非視網膜屏幕上模擬Mac OS X 10.8 Mountain Lion中的視網膜屏幕(HiDPI模式)?
- 27. iPad全屏模式&&飛行模式
- 28. OSX Lion全屏代碼編輯器?
- 29. 屏幕在正常模式和全屏模式下
- 30. 視頻的全屏模式
你嘗試過什麼?快速谷歌搜索「wxpython全屏」顯示了幾種不同的選擇。 – acattle
他特別想使用Lion的新全屏API。 wxWidgets還沒有這個功能。 – nneonneo
@nneonneo這是可能的,但書面的問題並未顯示任何獨立的研究努力,這是違反社區準則。 – acattle