GUIs - A Modest Proposal

Stephen Hansen me+list/python at ixokai.io
Tue Jun 15 00:08:38 EDT 2010


On 6/14/10 8:31 PM, rantingrick wrote:
> On Jun 14, 9:41 pm, Stephen Hansen <me+list/pyt... at ixokai.io> wrote:
> 
>> I wasn't aware of [row|column]configure, no: however, I am dubious of
>> how it directly applies.
> 
> Maybe you should become more aware of a subject before you start
> running your mouth about it, eh?

You know what?

You're an asshole.

Just saying.

I've been trying very hard not to say, "Go screw yourself, jackass" for
a few days now. Very hard. I've tried very hard to remain civil.

But really, I just feel a need to say it.

You're a complete and utter jackass.

Just saying.

>> Consider this relatively simple user interface layout:http://ixokai.io/get/layout-grid.jpg
>>
>> In this context, we have two principle columns, A and B. A has a set
>> size, B grows to fill the rest of the dialog.
>>
>> Inside of A, there are four items in a vertical line. The bottom which
>> takes up half of the total vertical space (poorly drawn, trust me, F
>> should be half :)), and the top three share the rest.
>>
>> Inside of B, G is one third the size of H.
>>
>> The layout should fully resize itself as the window is resized.
>>
>> How would you implement that in tkinter? It sounds like you'd have a
>> grid with a pair of one-column grids, which is slightly bizarre seeming.
> 
> Please at least try to make it a bit harder next time, really!
> 
> import Tkinter as tk
> app = tk.Tk()
> app.columnconfigure(1, weight=1)
> app.rowconfigure(3, weight=1)
> tk.Button(app, text='C', width=20).grid(row=0, column=0,
> sticky='nswe')
> tk.Button(app, text='D', width=20).grid(row=1, column=0,
> sticky='nswe')
> tk.Button(app, text='E', width=20).grid(row=2, column=0,
> sticky='nswe')
> tk.Button(app, text='F', width=20).grid(row=3, column=0, rowspan=2,
> sticky='nswe')
> tk.Button(app, text='G').grid(row=0, column=1, rowspan=2,
> sticky='nswe')
> tk.Button(app, text='H').grid(row=2, column=1, rowspan=2,
> sticky='nswe')
> app.mainloop()

Does not perform to spec. Quote, "Inside of A, there are four items in a
vertical line. The bottom which takes up half of the total vertical
space, and the top three share the rest.

Notice in: http://ixokai.io/get/layout-results-tk.jpg

That C, D, and E do not expand as they do, but instead F takes it all,
when it is supposed ot be entitled to only half of the vertical space.

Compare: http://ixokai.io/get/layout-results-wx1.jpg
And: http://ixokai.io/get/layout-results-wx2.jpg

I took some extra care to colorize the panels so its easy to see the
layout characteristics.

The code is at: http://ixokai.io/get/layout-wx.py_

Yes, its more verbose. And object oriented. This is a positive. I could
have made it all a great deal shorter and more concise, but left it
verbose for clarity's sake.

> 
> ...but i won't hold my breath awaiting for your "spectacular" Wx code
> because i know it was just vaporware from gum_flap[0] on.

Go screw yourself.

-- 

   Stephen Hansen
   ... Also: Ixokai
   ... Mail: me+list/python (AT) ixokai (DOT) io
   ... Blog: http://meh.ixokai.io/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20100614/18eaee1b/attachment-0001.sig>


More information about the Python-list mailing list