Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed4.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.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'win32': 0.03; 'subject:Python': 0.06; 'canvas': 0.07; 'environments': 0.07; 'nicely': 0.07; '*is*': 0.09; 'hooks': 0.09; 'pixels': 0.09; 'screen.': 0.09; 'things,': 0.09; 'api': 0.11; 'gui': 0.12; '(it': 0.16; 'benjamin': 0.16; 'non-native': 0.16; 'opposite': 0.16; 'readers,': 0.16; 'subject:GUI': 0.16; 'sure.': 0.16; 'tab': 0.16; 'underlying': 0.16; 'thursday,': 0.16; 'wrote:': 0.18; 'library': 0.18; 'looked': 0.18; 'bit': 0.19; 'trying': 0.19; 'drawing': 0.19; 'addition,': 0.20; 'platforms': 0.22; 'saying': 0.22; 'to:name:python-list@python.org': 0.22; "aren't": 0.24; 'looks': 0.24; 'environment': 0.24; 'developers': 0.25; 'right.': 0.26; 'least': 0.26; '(for': 0.26; 'header:In-Reply-To:1': 0.27; 'specifically': 0.29; 'am,': 0.29; 'message-id:@mail.gmail.com': 0.30; 'getting': 0.31; 'bunch': 0.31; 'sep': 0.31; 'up:': 0.31; 'yourself.': 0.31; 'stuff': 0.32; 'text': 0.33; 'worked': 0.33; 'running': 0.33; 'mac': 0.33; 'screen': 0.34; 'received:209.85': 0.35; 'knows': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'consistent': 0.36; 'controls': 0.36; 'in.': 0.36; 'library.': 0.36; 'ones,': 0.36; 'yours,': 0.36; 'thanks': 0.36; 'possible': 0.36; 'subject:?': 0.36; 'operating': 0.37; 'received:209': 0.37; 'to:addr:python-list': 0.38; 'rather': 0.38; 'little': 0.38; 'does': 0.39; '12,': 0.39; 'to:addr:python.org': 0.39; 'how': 0.40; 'even': 0.60; 'read': 0.60; 'blank': 0.60; 'most': 0.60; 'ago,': 0.61; 'ago.': 0.61; 'first': 0.61; 'such': 0.63; 'provide': 0.64; 'more': 0.64; 'different': 0.65; 'between': 0.67; 'square': 0.74; 'behavior': 0.77; 'draws': 0.84; 'messed': 0.84; 'native.': 0.84; 'rusi': 0.91; 'differences': 0.93; '2013': 0.98 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=2OnDACoSUhU5HLxX4KWD824OZDZPACpkOqsewqh52tw=; b=LbMCCkI1ynCduH1QLV8FPdqaixpGGmbm6/aZMklIto2wAmtHdOazI85icw+dy2Vhk5 /kvL1z3ggjF9Jgpq5E3ZziD2pYlHVj9hQXPX8M+irB6PV87A2apyOvcYJ7b8oadp8RI8 EnvII9KqGqO0eq9Bzy08W02D3cMaDg5A+Gd6U9lDW6hDkSSwqugSfcGh9ot66EHwm9ap 30qrEACwjPOPCqvX+8glQkOrdPeXDxVXIM5I334gO/KMnsp8R8KzhFzwNvrDj7PQf2xK tJJmc/i1MDotuPAv8+oKy0ObPZln3hHtgGfk75mnB/OSDmom94+FIKXx8lGqXvoRhV3X ymWQ== X-Gm-Message-State: ALoCoQlP67MQO2VlOmIQuDDUxjE3vU00likFqcuBT2qEZ5e4j53yq1YnqtHqWge2HHoEUhkjNRponZwbqVvB79fhQgRzbWQGFj9BqV5LfeZ0MkXoBIEH4sS0d9pbjMpD9bHQ/Qb1kqzX0WMFv4emUzNvQHD7JZppQw== X-Received: by 10.60.63.116 with SMTP id f20mr390929oes.29.1379440666598; Tue, 17 Sep 2013 10:57:46 -0700 (PDT) X-Received: by 10.60.63.116 with SMTP id f20mr390922oes.29.1379440666442; Tue, 17 Sep 2013 10:57:46 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1a8b14b3-85f3-4515-ba43-9b40e1a89f1d@googlegroups.com> <63de767b-1df3-4981-b86e-dbf8fa10c9e0@googlegroups.com> From: Benjamin Kaplan Date: Tue, 17 Sep 2013 10:57:26 -0700 Subject: Re: Python GUI? To: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 X-Junkmail-Whitelist: YES (by domain whitelist at mpv1.tis.cwru.edu) 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: 51 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1379440677 news.xs4all.nl 15976 [2001:888:2000:d::a6]:43265 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:54325 On Tue, Sep 17, 2013 at 9:51 AM, rusi wrote: > On Tuesday, September 17, 2013 9:49:28 PM UTC+5:30, Benjamin Kaplan wrote: >> On Tue, Sep 17, 2013 at 7:55 AM, rusi wrote: >> >> > On Thursday, September 12, 2013 10:21:49 PM UTC+5:30, Benjamin Kaplan wrote: >> >> > >> >> The main difference between wx and qt is that qt looks native on every platform >> >> while wx *is* native on every platform (it uses native controls wherever >> >> possible). This means that wx integrates into the OS better, but your also more >> >> likely to need OS-specific tweaks in wx, at least from my experience from a few >> >> years ago. >> > >> > For someone who is GUI-challenged, can you please expand on that a bit? >> > -- >> >> Sure. Every platform provides its own GUI library (Cocoa on Mac OS X, >> Win32 on Windows). Other programs that want to hook into yours, such >> as screen readers, are familiar with the platform's native GUI >> elements- it knows what a Win32 combo box is, and it knows how to read >> the text inside it. >> >> >> The other way to make a GUI is to take a blank canvas and draw on it >> yourself. This is more flexible and provides a more consistent >> experience across platforms, but unless you specifically go out of >> your way to provide hooks for other programs to jump in, all they see >> is a bunch of pixels on the screen. In addition, drawing your own >> stuff won't necessarily give you the "normal for the operating system" >> behavior on other things, like tab behavior. It's possible for >> non-native GUI environments to mimic this behavior (and QT does a >> pretty good job of this), but there's always going to be little things >> that seem a bit off. > > Thanks for the explanation. However I am not able to square it up: > > You seem to be saying that QT draws on a blank canvas rather than calling out to the OS library. > You also seem to be saying that QT (for the most part) Does the Right Thing for each platform. > -- Right. The QT developers have been working for years to get their controls to quack like the native ones, even though they aren't native. They started from controls that looked and worked the same on all platforms and have been trying to get them to play nicely with the environment they're running in. wx has been working from the opposite direction- they started with wrapping the native API and have been working on getting their API to make programs come out the same even when using different underlying toolkits. When I used wx about 5 years ago, some of the layout got messed up when we first ran the program (developed on Linux/GTK+) on a Mac because of some differences between how Carbon and GTK+ draw their controls.