problem extending tkSimpleDialog.Dialog
William Gill
noreply at gcgroup.net
Fri Aug 12 14:12:04 EDT 2005
I'm still hammering away, and have found that when I change:
class testWidget(Frame):
def __init__(self, master):
Frame.__init__(self)
self.createWidgets()
def createWidgets(self):
Label(self,text="testWidget").grid()
to:
def __init__(self, master):
Frame.__init__(self)
self.x=master
self.createWidgets()
def createWidgets(self):
Label(self.x,text="testWidget").grid()
It seems to work correctly. However my actual widget, an extended Frame
widget, still doesn't work correctly. This seems to confirm what I
thought about addressing the correct parent, but I still haven't figured
it out completely.
Unless someone can give me a clue, I guess I can keep modifying
testWidget(Frame) to add the components of my original until I can see
where it breaks down. On the surface it looks like I'm not passing the
correct master reference to my frame.
Bill
William Gill wrote:
> I have created a widget that extends Frame() and contains labels,
> checkboxes, and entrys. I am trying to use tkSimpleDialog.Dialog to
> create a modal display of this widget, but am running into some
> (addressing) problems. My widget displays in the parent widget, not the
> tkSimpleDialog.Dialog? I hope this snippet is enough to help, as my
> actual code is really too hard to follow.
>
> class showtestWidget(tkSimpleDialog.Dialog):
> def body(self,master):
> Label(master,text="showPhoneNums").grid()
> testWidget(self).grid()
>
> class testWidget(Frame):
> def __init__(self, master):
> Frame.__init__(self)
> self.createWidgets()
> def createWidgets(self):
> Label(self,text="testWidget").grid()
>
> When the parent script instantiates showtestWidget() it should create a
> transient dialog containing a label with the text "showPhoneNums". It
> does, but the label containing the text "testWidget" is being created in
> the parent widget, not the dialog.
>
> It seems obvious to me that I'm addressing the wrong parent somehow,
> since the label (probably the testWidget) is being created, but in the
> wrong place.
>
> I tried changing testWidget(self).grid() to testWidget(master).grid(),
> just to see if that helped, but it made no difference.
>
> Can someone show me where I went wrong?
>
> Bill
>
>
More information about the Python-list
mailing list