Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '(at': 0.04; 'from:addr:yahoo.co.uk': 0.04; 'subject:Python': 0.06; '(all': 0.07; 'tkinter': 0.07; 'advice.': 0.09; 'ascii': 0.09; 'lawrence': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'segfault.': 0.09; 'subtle': 0.09; 'sure,': 0.09; 'toolkit': 0.09; 'url:blog': 0.10; 'python': 0.11; 'gui': 0.12; 'project,': 0.12; 'language.': 0.14; 'mostly': 0.14; '(it': 0.16; '*other*': 0.16; 'aiming': 0.16; 'assigned,': 0.16; 'blocks': 0.16; 'displayed.': 0.16; 'exists,': 0.16; 'finney': 0.16; 'itself,': 0.16; 'language?': 0.16; 'least)': 0.16; 'letting': 0.16; 'merely': 0.16; 'range.': 0.16; 'rarely': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'resolved:': 0.16; 'subject:GUI': 0.16; 'tcl': 0.16; 'widgets.': 0.16; 'wxpython': 0.16; 'do,': 0.16; 'language': 0.16; 'wrote:': 0.18; 'library': 0.18; 'users.': 0.18; 'bit': 0.19; '>>>': 0.22; 'putting': 0.22; 'header:User-Agent:1': 0.23; 'issue,': 0.24; 'mathematical': 0.24; 'unicode': 0.24; 'fine': 0.24; 'mon,': 0.24; 'second': 0.26; 'least': 0.26; 'header:X-Complaints-To:1': 0.27; 'header:In-Reply- To:1': 0.27; 'tried': 0.27; 'chris': 0.29; 'url:bugs': 0.29; 'am,': 0.29; "doesn't": 0.30; 'characters': 0.30; 'newer': 0.30; 'strongly': 0.30; "i'm": 0.30; '(possibly': 0.31; '>>>>': 0.31; 'probably': 0.32; 'text': 0.33; 'url:python': 0.33; 'addresses': 0.33; 'bugs': 0.33; 'framework': 0.33; 'monday,': 0.33; 'projects.': 0.33; 'maybe': 0.34; "i'd": 0.34; 'problem': 0.35; "can't": 0.35; 'agree': 0.35; 'equal': 0.35; 'but': 0.35; 'useful': 0.36; 'url:org': 0.36; 'should': 0.36; 'list': 0.37; 'being': 0.38; 'christian': 0.38; 'represent': 0.38; 'ben': 0.38; 'url:library': 0.38; 'handle': 0.38; 'needed': 0.38; 'to:addr :python-list': 0.38; 'issue': 0.38; 'pm,': 0.38; 'does': 0.39; 'bad': 0.39; 'support,': 0.39; 'supporting': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'skip:u 10': 0.60; 'letters': 0.60; 'then,': 0.60; 'ago.': 0.61; 'break': 0.61; 'full': 0.61; 'new': 0.61; 'no.': 0.61; 'url:3': 0.61; 'simply': 0.61; "you're": 0.61; 'first': 0.61; 'complete': 0.62; 'skip:n 10': 0.64; 'our': 0.64; 'more': 0.64; 'skip:\xe2 10': 0.65; 'teach': 0.65; 'between': 0.67; 'frustrated': 0.68; 'limit': 0.70; 'chinese': 0.74; '\xe2\x80\x93': 0.77; '2015': 0.84; 'bmp,': 0.84; 'characters,': 0.84; 'everything.': 0.84; 'musical': 0.84; 'ostensibly': 0.84; 'received:2': 0.84; 'ships': 0.84; 'url:03': 0.84; 'cutting': 0.91; 'subject:Best': 0.91 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Mark Lawrence Subject: Re: Best GUI for Python Date: Wed, 29 Apr 2015 10:03:01 +0100 References: <87h9s311r6.fsf@Equus.decebal.nl> <553cffc2$0$12998$c3e8da3$5496439d@news.astraweb.com> <85d22qk54u.fsf@benfinney.id.au> <749283fd-5b27-42c9-8d3d-1d1079a312ad@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Gmane-NNTP-Posting-Host: host-2-98-195-171.as13285.net User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 In-Reply-To: <749283fd-5b27-42c9-8d3d-1d1079a312ad@googlegroups.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 90 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1430298305 news.xs4all.nl 2942 [2001:888:2000:d::a6]:56632 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:89532 On 29/04/2015 05:05, Rustom Mody wrote: > On Monday, April 27, 2015 at 12:52:48 PM UTC+5:30, Chris Angelico wrote: >> On Mon, Apr 27, 2015 at 4:55 PM, Christian Gollwitzer wrote: >>> Am 27.04.15 um 01:06 schrieb Chris Angelico: >>>> >>>> On Mon, Apr 27, 2015 at 6:26 AM, Ben Finney >>>> wrote: >>>>> >>>>> It doesn't have to. By using the newer ‘tkinter.ttk’ library >>>>> , the GUI will >>>>> use native look-and-feel widgets. >>>>> >>>> Does the new library also deal with the ongoing issues with Unicode >>>> support? AIUI there's some fundamental problem with Tkinter which >>>> means that (possibly only on Windows?) non-BMP characters simply can't >>>> be displayed. >>> >>> >>> No. That is a fundamental limit in Tcl 8 (it uses UCS-2 to store strings), >>> and will probably only addressed in Tcl 9. ttk addresses mostly the theming >>> issue and is now "8 years new" (Tk 8.5a6) with a precursor (Tile) from ten >>> years ago. >> >> Right, so this is an ongoing issue (at least for now). >> >>>> To me, that's a pretty bad flaw - we should be aiming >>>> new projects at complete Unicode support, which means Python 3 and a >>>> good GUI toolkit. >>> >>> >>> YMMV. Is non-BMP needed for any living non-esoteric language? I agree that >>> it is a big flaw, but still is useful for very many projects. >> >> Maybe not for the language itself, but then, you can transliterate >> Chinese using nothing but Roman letters and Arabic numerals (all in >> ASCII), so merely proving that you can represent text doesn't >> necessarily mean everything. Mainly, SMP characters are used for >> things like musical notes, mathematical symbols, emoticons, and so on. >> (Also, I'm not sure of the current state of the art as regards Chinese >> and Japanese characters.) If you support only the BMP, then you're far >> better off than supporting only ASCII or only > page>, to be sure, but it's still cutting out some characters. For a >> program that already exists, already works, and can't handle non-BMP >> characters, it's a small issue, and not one that I'd be recommending a >> complete GUI toolkit replacement for; but for a green-field project, I >> would strongly recommend using Python 3 and some toolkit which >> supports the full Unicode range. > > Everything else being equal this is likely fine advice. > However everything is rarely equal; eg the one time I tried to use wxpython > it segfaulted, probably the only time in 15 years of python-use that Ive > got python to segfault. > >> >> This is a problem that won't just "go away". As more SMP blocks get >> assigned, more people will start using them, and get frustrated at >> your program for not letting them. (And why should an end user need to >> know the difference between 😃 and ⍥, that the second one works and >> the first doesn't?) Unless you're willing to wait for a Python that >> ships Tcl 9, Tkinter is a choice that restricts your end users. > > The issue is a bit subtle and nuanced > Python is 2 (at least) things > 1. A fine unicode supporting framework > 2. A glue for putting together systems composed of various components > > Since some of those *other* components may break, it would be good for the > 'glueness' of python to break more smoothly than it currently does. > > http://blog.languager.org/2015/03/whimsical-unicode.html#half-assed > is a very non-exhaustive list – not just Tkinter – of > - ostensibly unicode-supporting > - actually SMP-borked > software > > IOW it would be good if bugs (enhancements actually) like these be resolved: > > http://bugs.python.org/issue23672 > http://bugs.python.org/issue18814 > http://bugs.python.org/issue22264 > Those who can do, those who can't teach :) -- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language. Mark Lawrence