Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!eternal-september.org!feeder.eternal-september.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!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.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'resulting': 0.04; 'tree': 0.05; 'subject:Python': 0.06; 'apps,': 0.07; 'suppose': 0.07; 'tkinter': 0.07; 'anymore.': 0.09; 'editor.': 0.09; 'objects,': 0.09; 'toolkit': 0.09; 'python': 0.11; 'gui': 0.12; 'from:addr:torriem': 0.16; 'from:name:michael torrie': 0.16; 'noble': 0.16; 'rarely': 0.16; 'runtime.': 0.16; 'subject:GUI': 0.16; 'subject:desktop': 0.16; 'tkinter.': 0.16; 'wrote:': 0.18; 'code.': 0.18; 'app': 0.19; 'load': 0.23; 'header:User-Agent:1': 0.23; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; 'am,': 0.29; 'generally': 0.29; 'xml': 0.29; 'designer': 0.30; 'expansion': 0.30; 'code': 0.31; 'usually': 0.31; '25,': 0.31; 'horizontal': 0.31; 'subject:next': 0.31; 'vertical': 0.31; 'fri,': 0.33; 'but': 0.35; 'message-id:@gmail.com': 0.38; 'to:addr:python-list': 0.38; 'rather': 0.38; 'structure': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'space': 0.40; 'course.': 0.60; 'full': 0.61; 'matter': 0.61; 'kind': 0.63; 'management': 0.65; 'positions': 0.67; 'yes': 0.68; 'fact,': 0.69; 'designers': 0.74; 'jul': 0.74; 'grow': 0.77; 'boxes.': 0.84; 'exercise,': 0.84; 'expose': 0.84; 'subject:Project': 0.84 X-Virus-Scanned: amavisd-new at torriefamily.org Date: Thu, 24 Jul 2014 15:38:20 -0600 From: Michael Torrie User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131118 Thunderbird/17.0.11 MIME-Version: 1.0 To: python-list@python.org Subject: Re: Exploring Python for next desktop GUI Project References: <93c42547-557b-4839-baba-9ed54120595e@googlegroups.com> <7fe34db0-8479-4546-bf1b-efc39a9a5ac0@googlegroups.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 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: 18 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1406237908 news.xs4all.nl 2895 [2001:888:2000:d::a6]:56211 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:75185 On 07/24/2014 10:46 AM, Chris Angelico wrote: > On Fri, Jul 25, 2014 at 2:29 AM, Noble Bell wrote: >> I was leaning toward Python 3 and Tkinter. I suppose the best way to do the GUI with Tkinter is to just roll-up my sleeves and do it via code rather than with the aid of a GUI editor. > > Yep. In fact, I recommend that for all GUI toolkits; instead of > thinking about your layout in terms of positions of widgets on a > window, think about it in terms of what your toolkit provides you with > - usually that'll be some kind of tree structure of layout objects, > like vertical and horizontal boxes. And if you plan your layout that > way, you may as well just write it directly as code. As an exercise, yes this is valuable, but not necessary as a matter of course. But I rarely code guis anymore. I use Qt Designer for Qt apps, and Glade-3 for GTK and then load the resulting XML into my app at runtime. The GUI designers expose the full layout management capabilities of the toolkit. In GTK terms that's generally hboxes or vboxes with expansion flags. In Qt it's the same but with "springs" to consume space to make things grow and shrink appropriately.