Binding or executing a command with a TkOptionMenubutton

A

Alex DeCaria

I want my program to execute a command whenever a new selection is made
from a TkOptionMenubutton. The -command option isn't allowed with
TkOptionMenubuttons, so I've been experimenting with various bindings,
but can't find an appropriate binding event.

I've tried the following simple example which should print the value of
the selection, but it only works if the mouse is directly over the
button itself, and not over the expanded options.

Any ideas how to do this?

#------------------------------------
require 'tk'
root = TkRoot.new.title("MenuOptionbutton")

list = ["1", "2", "3", "4", "5"]
var = TkVariable.new
button = TkOptionMenubutton.new(root,var,*list).pack
button.bind('ButtonRelease-1') do
print var, "\n"
end

Tk.mainloop

#--------------------------------------------
 
H

Hidetoshi NAGAI

From: Alex DeCaria <[email protected]>
Subject: Binding or executing a command with a TkOptionMenubutton
Date: Fri, 16 Mar 2007 22:13:22 +0900
Message-ID: said:
I've tried the following simple example which should print the value of
the selection, but it only works if the mouse is directly over the
button itself, and not over the expanded options.

Any ideas how to do this?

For example,
-----------------------------------------------------------------
require 'tk'
root = TkRoot.new.title("MenuOptionbutton")

list = ["1", "2", "3", "4", "5"]
var = TkVariable.new
button = TkOptionMenubutton.new(root,var,*list).pack
menu = button.menu
menu.bind('ButtonRelease-1', '@%y'){|y|
value = menu.entrycget(y, :value)
print var, ' -> ', value, "\n"
}
# OR,
#menu.bind('ButtonRelease-1', '%y'){|y|
# value = menu.entrycget("@#{y}", :value)
# print var, ' -> ', value, "\n"
#}

Tk.mainloop
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top