En Mon, 13 Apr 2009 15:13:53 -0300, norseman <norse...@hughes.net>
escribió:
Gabriel Genellina wrote:
Now, if ... summarizes your problem, I think you should use the
"place" geometry manager, not grid (nor pack).
The Tkinter documentation [1] is rather short but the Tcl docs [2] have
more info.
[1] http://effbot.org/tkinterbook/place.htm
[2] http://www.tcl.tk/man/tcl8.4/TkCmd/place.htm
Thanks for the links but I'm having the same problems as before. [...]
I can't visualize that working properly in my current need. The mockup
board is to be size inflexible and real estate jammed with specifically
sized replaceable sections. The question is how to make it happen.
Below there is an attempt to reproduce the layout you describe in the PDF:
from Tkinter import *
root = Tk()
pane = Frame(root, width=400, height=300)
pane.pack(fill="both", expand=1)
w1 = Label(pane, text="1", bg="white")
w1.place(relwidth=0.1, relheight=0.5)
w2 = Label(pane, text="2", bg="yellow")
w2.place(relwidth=0.25, relheight=0.3, relx=0.1)
w3 = Label(pane, text="3", bg="red")
w3.place(relwidth=0.2, relheight=0.2, relx=0.1, rely=0.3)
w4 = Label(pane, text="4", bg="cyan")
w4.place(relwidth=0.05, relheight=0.2, relx=0.3, rely=0.3)
w5 = Label(pane, text="5", bg="blue")
w5.place(relwidth=0.35, relheight=0.5, rely=0.5)
w6 = Label(pane, text="X", bg="gray")
w6.place(relwidth=0.25, relheight=1, relx=0.35)
w7 = Label(pane, text='Rest of master control parceled as "whatever"',
bg="white")
w7.place(relwidth=0.40, relheight=1, relx=0.60)
root.mainloop()
The "place" geometry manager is the most powerful (least restricted) of
all three standard managers; for each widget, you specify its size and
position (in relative or absolute terms) without further restrictions.
In this case, the same thing could be done using pack (requiring a few
auxiliary frames) -- but this is not always the case. Like cutting a
rectangular piece of wood with a linear saw: you can only make straight
cuts from one side to the oposite one; you can't stop in the middle. Those
are the kind of layouts pack is able to build.
The grid manager has its own restrictions too, although it's easier to use
when building dialog boxes or input forms.
So the place manager is the only one that can provide the flexibility you
apparently require. At least if you want a non-rectangular shape as the
"parcel" example in the PDF (or overlapping widgets of any kind).
Back to your question. Yes - there is a great need for dictionary
adherence. Especially when language translations are probable.
Also - The Military, the Engineering/Architectural, Building, Map Making
and Graphic Arts and Printing communities have all been 'trained' to
the concept of grid. Not to mention Pilots and Navagators. The average
person and the Reality Companies all understand the concept of parcels.
Grid points can be used without the need to fill the intervening. Take
a look at the starts at night. ALL parcels must have one or more parcels
between them if they are not contiguous. How else can one walk down the
street?
Cells in the grid geometry manager must be rectangular, all of them have
four neighbourghs (except at the boundary), and adjacent grid cells must
have the same dimension at its common side. Those are strong restrictions
and I believe "parcel" is a more generic term than that (just from the
dictionary definition -- I'm not a native English speaker).
The only mismatch with your dictionary definition of "grid" would be the
"uniform" part -- and from this Wikipedia article [1] you can see there
are rectangular grids in addition to square grids (and triangular, and
hexagonal, and...) so it's not just the idea of a crazy Tk designer...
Are there any other GUI's that run Python code unchanged on Linux and
Windows?
Sure. I like wxPython. The question "Which is the best GUI toolkit?"
arises about once per month in this group, see past messages...
[1] http://en.wikipedia.org/wiki/Grid_(spatial_index)
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list