I am trying to prevent a user from resizing a frame beyond its "natural" size as given by winfo_reqwidth and winfo_reqheight, without any success. Can anyone make any suggestions, based on my code below?
Thanks! from Tkinter import * class Table(Frame): def __init__(self, master, rows=['row 1'], cols=['col 1'], row_labels=True, col_labels=True, row_buttons=True, col_buttons=True): Frame.__init__(self, master) self.rows = rows self.cols = cols self.row_labels = row_labels self.col_labels = col_labels self.row_buttons = row_buttons self.col_buttons = col_buttons self.col_width = 6 self.draw() self.bind('<Configure>', self.changed) def changed(self, ev): w, h = self.winfo_reqwidth(), self.winfo_reqheight() cfg = {} if ev.height > h: cfg['height'] = h if ev.width > w: cfg['width'] = w if cfg: self.config(**cfg) ######## this has no effect ######## def draw(self): if self.row_labels or self.row_buttons: col = 1 for t in self.cols: if self.row_labels: e = Entry(self, width=self.col_width, relief=GROOVE) e.insert(INSERT, t) e.grid(row=0, column=col+1) if self.row_buttons: e = Label(self, text=col, width=self.col_width, relief=GROOVE,bg='gray', fg='blue') e.grid(row=1, column=col+1) col += 1 if self.col_labels or self.col_buttons: row = 1 for t in self.rows: if self.col_labels: e = Entry(self, width=15, relief=GROOVE) e.insert(INSERT, t) e.grid(row=row+1, column=0) if self.col_buttons: e = Label(self, text=row, width=self.col_width, relief=GROOVE,bg='gray', fg='blue') e.grid(row=row+1, column=1) row += 1 if __name__ == '__main__': top = Tk() cols = ['col %s' % i for i in range(5)] rows = ['row %s' % i for i in range(5)] s = Table(top, rows=rows, cols=cols) s.pack(fill=BOTH, expand=1) mainloop() -- http://mail.python.org/mailman/listinfo/python-list