homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: IDLE is pixelated on the Macbook Pro with Retina Display
Type: behavior Stage: resolved
Components: IDLE, Tkinter Versions: Python 3.2, Python 3.3, Python 3.4, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ned.deily Nosy List: Tyler.Crompton, ned.deily, python-dev, wordtech
Priority: normal Keywords:

Created on 2012年08月08日 07:20 by Tyler.Crompton, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
Screen Shot 2012年08月08日 at 2.07.19 AM.png Tyler.Crompton, 2012年08月08日 07:20 Side by side comparison of Terminal and IDLE on the Macbook Pro with Retina Display
Messages (10)
msg167671 - (view) Author: Tyler Crompton (Tyler.Crompton) Date: 2012年08月08日 07:20
I think this is more of a Tkinter issue than IDLE but since IDLE uses Tkinter, it inherits this "bug". Many programs that were not developed for the Macbook Pro with Retina Display still look great. Whereas others, look pixelated in some areas (i.e. the current stable release of Google Chrome IIRC (I installed the beta to get around that)), and some are just flat out pixelated everywhere. IDLE falls into the latter category. I know IDLE really has its issues and that few people use it, but it's a cosmetic change that I don't see being too difficult. Then again, I know hardly anything about how it is implemented.
msg167676 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2012年08月08日 08:13
Text rendering in Tkinter applications like IDLE is a service of the underlying Tcl/Tk implementation. Essentially, all that IDLE does is to pass text in a requested font face and font size through Tkinter to Tcl/Tk which may then use whatever approach it wants to render the text. IDLE does allow you to select a font face and text size in the IDLE Preferences Font/Tabs tab. You may want to experiment there to find a satisfactory combination of settings for your use. If you can't and there is something specific that needs to change, it will almost certainly have to be done by the Tcl/Tk project. Feel free to reopen this issue if you can identify specific deficiencies in IDLE or Tkinter.
msg176415 - (view) Author: Kevin Walzer (wordtech) * Date: 2012年11月26日 14:37
This can probably be fixed by setting this key in the app's info.plist file: 
<key>NSHighResolutionCapable</key>
<true/>
Under the hood, Tkinter/Tk-Cocoa uses CoreText to render text, and I understand this to adapt to high-res displays out of the box--as long as the proper key is set in the plist file. 
Only pixmaps/images require special developer handling to display properly on Retina displays. As IDLE does not use any such graphics, it should be fine. 
Can someone file a patch for the info.plist file, or at try editing the app's info.plist file and then testing on a high-res display? I do not have access to a Retina display machine on my system. Here are more details on how to enable the key and test it:
http://apple.stackexchange.com/questions/53717/how-does-eclipse-work-on-new-retina-macbook-pros 
msg176424 - (view) Author: Tyler Crompton (Tyler.Crompton) Date: 2012年11月26日 16:31
I can confirm that this works. The underscore does not appear when using the default font settings (Courier, size 10). I changed it to Courier New and all is fine. One may also want to increase the font size to 12 as the font is difficult to read when the property list has been fixed. I have no idea where to begin on the patch, though.
msg176425 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2012年11月26日 16:45
Tahnks for the suggestion, Kevin, and for testing, Tyler. I'll work up a proper patch and may ask you to test it, Tyler, as I also do not have access to a Retina display at the moment.
msg181137 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2013年02月02日 07:18
New changeset 2274f3196a44 by Ned Deily in branch '2.7':
Issue #15587: Enable Tk high-resolution text rendering on Macs with
http://hg.python.org/cpython/rev/2274f3196a44
New changeset 7dfd84021494 by Ned Deily in branch '3.2':
Issue #15587: Enable Tk high-resolution text rendering on Macs with
http://hg.python.org/cpython/rev/7dfd84021494
New changeset 8fbab6648309 by Ned Deily in branch '3.3':
Issue #15587: merge from 3.2
http://hg.python.org/cpython/rev/8fbab6648309
New changeset d8dcf87b8e49 by Ned Deily in branch 'default':
Issue #15587: merge from 3.3
http://hg.python.org/cpython/rev/d8dcf87b8e49 
msg181139 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013年02月02日 07:28
I've updated the plists for both IDLE.app and the framework Python.app to enable the high-resolution rendering. That should affect IDLE.app and bin/idle and any other Tkinter-based program, as long as they all are being run from a framework build of Python such as provided by the python.org OS X installers. Again, since I don't have access to a Retina display Mac, I cannot test the changes myself. The fixes will appear in the upcoming 2.7.4 and 3.2.4 releases as well as 3.3.1 and 3.4.0. It would be nice if someone with a Retina Mac could install one or both of the release candidates for 2.7.4 and 3.2.4 when available and report the results of testing.
msg182468 - (view) Author: Tyler Crompton (Tyler.Crompton) Date: 2013年02月20日 04:40
I will gladly test the changes. Where would I find these to download?
msg182475 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013年02月20日 06:43
Thanks, Tyler. The 2.7.4 and 3.2.4 maintenance releases have been delayed due to some critical issues and so we don't have a new availability date for the first release candidates. I'll try to remember to ping here when that happens.
msg184659 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013年03月19日 18:36
I've just run across an easy way to simulate a retina display on my MBP model (http://stackoverflow.com/a/13596261/145403) and have verified that the change in the plist makes a big difference in Tk text rendering, at least with A/S Tcl/Tk 8.5.13. So I'm going to close this now. Tyler, once the next releases are out, I'd still be interested to know how it works for you.
History
Date User Action Args
2022年04月11日 14:57:34adminsetgithub: 59792
2013年03月19日 18:36:48ned.deilysetstatus: pending -> closed

messages: + msg184659
2013年02月20日 06:43:41ned.deilysetstatus: open -> pending

messages: + msg182475
2013年02月20日 04:40:26Tyler.Cromptonsetstatus: pending -> open

messages: + msg182468
2013年02月02日 07:28:01ned.deilysetstatus: open -> pending
versions: + Python 3.4
type: enhancement -> behavior
messages: + msg181139

resolution: fixed
stage: needs patch -> resolved
2013年02月02日 07:18:14python-devsetnosy: + python-dev
messages: + msg181137
2012年11月26日 16:45:08ned.deilysetstatus: pending -> open
assignee: ned.deily
messages: + msg176425

stage: resolved -> needs patch
2012年11月26日 16:31:51Tyler.Cromptonsetstatus: closed -> pending
resolution: not a bug -> (no value)
messages: + msg176424
2012年11月26日 14:37:41wordtechsetnosy: + wordtech
messages: + msg176415
2012年08月08日 08:13:59ned.deilysetstatus: open -> closed

versions: - Python 2.6, Python 3.1, Python 3.4
nosy: + ned.deily

messages: + msg167676
resolution: not a bug
stage: resolved
2012年08月08日 07:20:16Tyler.Cromptoncreate

AltStyle によって変換されたページ (->オリジナル) /