...at least I think it would be nested.
Anyway, I have several "widget groups" that I want to create inside a frame,
which is inside a class. I started to just do them with copying and pasting,
and changing the values for each one (the first one is commented out, I left it
in so you could see what I am after), but thought maybe I could make a class
for one widget group.
...and it works, sort of.
When I call the widget group class inside the main class, it shows up, but
appears to be using the root window instead of the frame, which doesn't
surprise me, since there is no connection between the widget group and the
frame I want them to appear in. But the question is, how to make that
connection?
Here is the code. I want "self.rev_stuff" to show up inside
self.ck_header_frame. Am I right in guessing that it has to do either with the
Header_item class being an object, or I need to do something in its def
__init__ ?
from Tkinter import *
class Header_item(object):
def __init__(self, lab_text = '', lab_width = 5, ent_width = 5, grid_row =
1, grid_col = 1):
self.container = Frame()
self.info_label = Label(self.container, text = lab_text, width =
lab_width)
self.info_ent = Entry(self.container, width = ent_width)
self.info_label.pack(side = 'left')
self.info_ent.pack(side = 'left')
self.container.grid(row = grid_row, column = grid_col)
class Checksheet(Frame):
def __init__(self, master, rows):
rows += 2
self.ck_header_frame = Frame()
self.ck_header_frame.grid(row = 1, column = 1, padx = 5, pady = 5)
self.feature_block = Frame()
self.feature_block.grid(row = 2, column = 1, padx = 5, pady = 5)
"""
self.f_rev_frame = Frame(self.ck_header_frame)
self.f_rev_lab = Label(self.ck_header_frame, text = 'FORM REV:', width
= 12)
self.f_rev_ent = Entry(self.ck_header_frame, width = 12)
self.f_rev_lab.pack(side = 'left')
self.f_rev_ent.pack(side = 'left')
self.f_rev_frame.grid(row = 1, column = 2)
"""
self.rev_stuff = Header_item(lab_text = 'FORM REV:',
lab_width = 12,
ent_width = 12,
grid_row = 1,
grid_col = 2)
features_header = []
features_header.append(('NO.', 5))
features_header.append(('CofC', 5))
features_header.append(('FEATURE DESCRIPTION', 50))
features_header.append(('FREQ.', 12))
features_header.append(('GAGES', 12))
column_count = 1
self.feat_hdr = dict()
self.feat_num = dict()
self.feat_class = dict()
self.feat_desc = dict()
self.feat_freq = dict()
self.feat_gages = dict()
for _column, item in enumerate(features_header):
_column += 1
col_name, _width = item
self.feat_hdr[_column] = Label(self.feature_block, text = col_name,
width = _width, relief = 'groove')
self.feat_hdr[_column].grid(row = 1, column = _column)
for col_name, _width in features_header:
if col_name == 'NO.':
for i in range(2, rows):
self.feat_num[i] = Entry(self.feature_block, width =
_width, relief = 'sunken')
self.feat_num[i].grid(row = i, column = 1)
elif col_name == 'CofC':
for i in range(2, rows):
self.feat_class[i] = Entry(self.feature_block, width =
_width, relief = 'sunken')
self.feat_class[i].grid(row = i, column = 2)
elif col_name == 'FEATURE DESCRIPTION':
for i in range(2, rows):
self.feat_desc[i] = Entry(self.feature_block, width =
_width, relief = 'sunken')
self.feat_desc[i].grid(row = i, column = 3)
elif col_name == 'FREQ.':
for i in range(2, rows):
self.feat_freq[i] = Entry(self.feature_block, width =
_width, relief = 'sunken')
self.feat_freq[i].grid(row = i, column = 4)
elif col_name == 'GAGES':
for i in range(2, rows):
self.feat_gages[i] = Entry(self.feature_block, width =
_width, relief = 'sunken')
self.feat_gages[i].grid(row = i, column = 5)
root = Tk()
checksheet = Checksheet(root, 5)
root.mainloop()
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor