Le 09/06/2010 20:37, rantingrick a écrit :
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. ;-)

thanks I realised it eventually
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to