Tkinter--Column Alignment in a Dialog

W. eWatson notvalid2 at sbcglobal.net
Sat Mar 21 01:41:23 EDT 2009


The code below produces:

Label title frame
lat/long fields in a frame
Label
x,y label fields in a frame
Standard OK-Cancel buttons

How do I fix it so the lat/long left most field lines up with the x,y left 
most field?

That is, I get something like:

Lat: BOX Long: BOX
    pixel-x: BOX pixel-y: BOX
I want the second line to be pushed to the left. BOX is just a data entry 
field. I want the two rows as far to the margin on the left.

# testTk.py
# Prototype for dialog
from   Tkinter import *
from   tkSimpleDialog import Dialog
import tkSimpleDialog
import tkMessageBox

class DialogPrototype(Dialog):

     def body(self, master):

         # Titles
         fLocationTitle = Frame(master)  # fL..., f for frame
         fLocationTitle.pack()

         # Frames
         fLocationTitle = Frame(master)
         fLocationTitle.pack()
         fCoords = Frame(master)
         fCoords.pack(side=TOP)
         beef=Entry(fCoords,width=20)

         fZenithTitle = Frame(master)
         fZenithTitle.pack(side=TOP)
         fZenith = Frame(master)
         fZenith.pack(side=TOP)

         self.title("Enter Site/Misc. Data")

         # Latitude and Longitude
         Label(fLocationTitle, text="Geographic Location").grid(row=0,column=0)

         Label(fCoords, text='Latitude:').grid(row=0, sticky=W+E, padx=5, 
pady=3)
         lat = Entry(fCoords, width=12)
         lat.grid(row=0, column=1)

         Label(fCoords, text='Longitude:').grid(row=0, column=2, padx=5, pady=3)
         long = Entry(fCoords, width=12)
         long.grid(row=0, column=3)

         # Zenith pixels
         Label(fZenithTitle, text="Zenith Pixel 
Position").grid(row=0,column=0, pady=4)

         Label(fZenith, text='Zenith x:').grid(row=0, column=0, padx=5, pady=3)
         zenith_x = Entry(fZenith, width=6)
         zenith_x.grid(row=0, column=1)

         Label(fZenith, text='Zenith y:').grid(row=0, column=2,padx=5,pady=3)
         zenith_y = Entry(fZenith, width=6)
         zenith_y.grid(row=0, column=3)
         return

     def apply(self):
         print "apply"
         print self.lat.get()
         print self.long.get()

     print "setting"
     lat=1.0
     long=0.0

root = Tk()
root.withdraw()
DialogPrototype(root)
-- 
                                W. eWatson

              (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
               Obz Site:  39° 15' 7" N, 121° 2' 32" W, 2700 feet

                     Web Page: <www.speckledwithstars.net/>




More information about the Python-list mailing list