检测单击TkText内的TkTextImage

时间:2018-03-03 10:35:19

标签: ruby events click tk

我想将一个事件(特别是Button-1)绑定到位于TkTextImage内的TkText。然而,事件永远不会发生。我尝试了其他活动,例如EnterLeave,但这些事件也没有被解雇。

图像显示正确,但它不会触发任何事件。

我使用以下代码:

root = TkRoot.new(title: 'Hello, world!')

img = TkPhotoImage.new(file: 'test.gif')
text = TkText.new(root)
text.pack

text_image = TkTextImage.new(text, '0.0', image: img)
text_image.bind("Button-1", proc do
  puts "Image click!"
end)

puts "Running app..."
Tk.mainloop 

如何启用text_image检测事件?

1 个答案:

答案 0 :(得分:1)

这不是一个直接的解决方案。 如何使用TkTextWindow和TkButton?

require 'tk'

src = TkScrollbar.new.pack(side: :right, fill: :y)
text = TkText.new.pack(side: :left, fill: :both, expand: true)
text.yscrollbar src

img = TkPhotoImage.new(file: 'test.gif')

button= TkButton.new(image: img) do
  relief :flat
  command {puts "Image click!"}
end

TkTextWindow.new(text, '0.0').window=button

Tk.mainloop