From: Dodo on 12 Jun 2010 16:39 Le 09/06/2010 20:37, rantingrick a �crit : > On Jun 9, 12:20 pm, Dodo<dodo_do_not_wake...(a)yahoo.Fr> wrote: >> Le 09/06/2010 18:54, rantingrick a crit : >> >> >> >> >> >>> On Jun 9, 11:26 am, Dodo<dodo_do_not_wake...(a)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. ;-) thanks I realised it eventually |