Gabriel Genellina wrote:
En Tue, 14 Apr 2009 18:42:32 -0300, norseman <norse...@hughes.net> escribió:

Gabriel Genellina wrote:
En Mon, 13 Apr 2009 15:13:53 -0300, norseman <norse...@hughes.net> escribió:
Gabriel Genellina wrote:


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)
[...]

Anyone having the same problem I have had needs to copy/paste the effort and play with it a bit.

WOW! - it's what I've been trying to do!!!!!  (much more YES than not)

One can substitute a Frame widget for the Label widget and see how it will work. Do take note that as you traverse away from the 0,0 (here assumed to be top left) point the prior (sum) of the prior widget(s) relwidth (to left) goes into the relx and the same addition to the prior relheight(s) (above) goes into the rely displacements of the current. Also take note of how the parcels flush out at logical places. Place is not a grid (it's parcelling) and it's based on units of "%" of Frame it is used in. That is: Place uses a "%" value rather than a finite distance. Thus, to have two different, but same screen size, frames, each in a differently fixed sized frame of it own, YOU WILL HAVE TO REDO THE MATH. Even if both are hooked at the 0,0 of their respective masters.

That's not really true. "place" takes a position and a size; both can be relative (percent, based on its parent), absolute (in pixels, inches, or other units), and you can even mix both types. x,y are absolute; relx,rely are relative; same goes for height,width and relheight,relwidth.

The available absolute units are: 200 (an integer, *not* 200.0) means 200 pixels; "200m" (a string) means 200 mm, "200p" means 200 points (1/72"), "200i" means 200 inches, and finally "200c" means 200 cm. So you can define the exact size and position for each element.

I had tried these in "grid" and didn't get very far so I assumed things had changed since the docs were written. Good to know.

Relative sizes and positions are automatically scaled when the container is resized -- in my example, if you resize the window all the "parcels" grow and shrink accordingly.

YES - very nicely so.

With absolute sizes, you don't have to redo the math each time, but resizing isn't automatic. Perhaps absolute sizes are better suited for your application.


Yes. Mine is rather like a dashboard that unfortunatly takes up more cockpit (screen) than I like. If the user shrinks it they will have a hard time trying to pick the selection of choice and if they expand it (unlikely) it will put enough off screen to cause another problem, omissions.

Gabriel - THANK YOU VERY MUCH!!!!!
May not be politically correct but:
Whatever your gender - Please give yourself a good hug for me.

Glad to be of any help. I'm a male, btw.



Mucho obligó al Señor;


Steve
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to