Implicit initialization is EVIL!

Chris Angelico rosuav at
Mon Jul 4 18:01:49 CEST 2011

On Tue, Jul 5, 2011 at 1:46 AM, rantingrick <rantingrick at> wrote:
> On Jul 4, 10:40 am, Chris Angelico <ros... at> wrote:
>> Uhh, sorry. No. There are plenty of good reasons for one application
>> to make multiple top-level windows, and if I ever find myself using a
>> toolkit that makes this difficult, I'll either be hacking the toolkit
>> or using a different one. I've been building GUI applications for far
>> too long to not want features like that.
> And those reasons are...?

As varied as the applications that call on them. One example that
springs to mind: Our database front end has "table view" and "record
view", where you get one table view and from that you can view as many
records as you like. Users may choose to effectively switch from one
view to the other, or they may open up two or more record views and
have them and the table view all on screen simultaneously. This is not
a modal dialog; it's not even a modeless dialog - it's a completely
stand-alone window that can be moved around the Z order independently
of the parent. There's a definite ownership based on process, though;
terminate the process (by closing the table view) and it must close
all record views first. I've done other applications where this has
not been the case - where all top-level windows are truly equal - but
not in this instance.

As an aside, that particular program is one that we are currently
using (I glance over and can see it running on one of our terminals
here), and the interface has not changed since about 2002 (actually
earlier - 2002 had a major code rewrite without much UI change).
Multiple top-level windows fulfills the Law of Least Astonishment
admirably, and has done so for a decade.

Chris Angelico

More information about the Python-list mailing list