我正在尝试为Mac OS X(El Capitan)构建wxPython应用程序,并使用视网膜显示器处理MBP。
我刚刚复制了Google云端硬盘应用状态图标 - 16x16和32x32(2x)并且模糊不清。
我也尝试过来自this ticket的代码,但它没有帮助。
我的代码如下所示:
implicit val personCodec = RowCodec.caseCodec2(Person.apply, Person.unapply)(0, 1)
结果(大多数左图标是我的):
wxPython版本:3.0.3.dev1836 + f764b32 osx-cocoa(phoenix)
PS。我知道Google Drive也建立在wxPython之上。但它在状态栏中有很好的视网膜图像。他们是怎么做到的?
答案 0 :(得分:0)
一种方法是在设置图标之前检查比例:
import sys; print sys.version
import wx; print wx.version()
if 'phoenix' not in wx.PlatformInfo: exit()
class CreateTestFrame(wx.Frame):
def __init__(self):
return wx.Frame.__init__(self, None, -1, "test frame")
wxSandbox = wx.App()
testFrame = CreateTestFrame()
print "Scale factor: ", testFrame.GetContentScaleFactor()
if testFrame.GetContentScaleFactor() < 2.0:
print "Not 'Retina' scaling"
icon = wx.Icon('./icons/mac-normal.png', wx.BITMAP_TYPE_ANY)
print "pixel height", icon.GetHeight()
else:
print "'Retina' scaling"
icon = wx.Icon('./icons/mac-normal@2x.png', wx.BITMAP_TYPE_ANY)
print "pixel height", icon.GetHeight()
testFrame.SetIcon(icon)
testFrame.Show()
wxSandbox.MainLoop()
exit()
我的显示屏上的比例显示为“2.0”,并正确选择32x32图标。
2.7.11(默认,2015年12月5日,14:44:53)
[GCC 4.2.1兼容的Apple LLVM 7.0.0(clang-700.1.76)]
'3.0.3(thorr18)-f764b32 osx-cocoa(凤凰)'
比例因子:2.0
'视网膜'缩放
像素高度32处理完成,退出代码为0