Bug in Tkinter?

Colin J. Williams cjw at connection.com
Tue Aug 31 08:31:55 EDT 1999


Tim,

I get the same symptom with Win95.

Colin W.

tre17 at student.canterbury.ac.nz wrote:

> Have a look at the following code.  It should produce a window
> containing two radio buttons, one of which is active when the program
> starts.  But it does not!  Now remove the comments, so that there is a
> permanent reference to StringVar instance, and now it works?
>
> This is running Python 1.5.2 from the Debian package `python-tk 1.5.2-5'
> under Debian 2.2 (potato).
>
> =====================
> #!/usr/bin/python
>
> from Tkinter import *
> import sys
>
> class Foo(Frame):
>     def __init__(self, master):
>         Frame.__init__(self, master, relief='raised', bd=1)
>         mode = StringVar()
>         self.b1 = Radiobutton(self, text='Foo',
>                               variable=mode, value='foo',
>                               command=self.foo)
>         self.b2 = Radiobutton(self, text='Bar',
>                               variable=mode, value='bar',
>                               command=self.bar)
>         self.b1.pack(side='left', fill='x', expand=1)
>         self.b2.pack(side='right', fill='x', expand=1)
>         mode.set('bar')
>         print sys.getrefcount(mode)
>         #d['mode'] = mode
>         #print sys.getrefcount(mode)
>
>     def foo(self):
>         print 'foo'
>
>     def bar(self):
>         print 'bar'
>
> root = Tk()
> d = {}
> f = Foo(root)
> f.pack()
> root.mainloop()
> =====================
>
> Any comments?
>
> --
> Tim Evans







More information about the Python-list mailing list