On Jun 9, 12:20 pm, Dodo <dodo_do_not_wake...@yahoo.fr> wrote: > Le 09/06/2010 18:54, rantingrick a crit : > > > > > > > On Jun 9, 11:26 am, Dodo<dodo_do_not_wake...@yahoo.fr> wrote: > >> Hello, > > >> I trying to make this piece of code work (this is python3) > > >> from tkinter import * > >> from tkinter.ttk import * > > >> class Window: > >> def __init__(self): > >> self.root = Tk() > > >> self.menu = Menu(self.root) > >> self.root['menu'] = self.menu > > >> self.submenu = Menu(self.menu) > >> self.ck = 0 > >> self.submenu.add_checkbutton(label="My checkbutton", > >> variable=self.ck, command=self.displayCK) > >> self.menu.add_cascade(label="sub", menu=self.submenu ) > > >> def displayCK(self): > >> print( self.ck ) > > >> app = Window() > >> app.root.mainloop() > > > see my recent post on your last question. The way you are writing > > these classes is wrong. Always inherit from something, in this case > > Tk. Fix that first and then pretty up this GUI. But to answer your > > question "self.ck" needs to be an instance of tk.IntVar. Read more > > about it here... > > > http://infohost.nmt.edu/tcc/help/pubs/tkinter/checkbutton.html > > I already tried with self.ck = IntVar() > and now it displays PY_VAR0 > > FYI, I'm using Thunderbird 3, which appears to have some bugs with > indentation (according to Alf P. Steinbach). That's why I replaced \t by > a single space
IntVar is a class and self.ck is an instance of that class which is a PY_VAR. Try print(dir(self.ck)) in your callback to see what methods are available to this instance. Im just speculating here but somehow there must be a way to "get" and "set" the IntVar's value... hmmm? You're about to kick yourself when you realize it. ;-) -- http://mail.python.org/mailman/listinfo/python-list