如何使 GTKOverlay 不带走下面的小部件的所有交互?
How do I make a GTKOverlay not take ALL interaction away from widgets under?
我有一张地图我必须添加属性,我发现 GtkOverlay 似乎是正确的小部件。不幸的是我可以添加一个标签,例如,它显示在地图小部件上......但即使标签不是那么高,没有设置为填充,它仍然会从下面的地图中删除所有交互。
overlay = Gtk.Overlay()
overlay.add(self.osm)
top_container = Gtk.VBox()
btmlbl = Gtk.Label("(c) so and so");
top_container.pack_end(btmlbl, False, False, 0)
self.vbox.pack_start(overlay, True, True, 0)
overlay.add(btmlbl)
overlay.add_overlay(top_container)
如何让叠加层仅覆盖一个标签、图像以进行点击交互仅当光标位于该元素上时??
答案在文档中...
overlay.set_overlay_pass_through(container,True)
overlay.set_overlay_pass_through(labelcontrol,False)
实际上,labelcontrol 并不需要它,只要它具有使其可点击的调整即可:
lbl.set_has_window(True)
lbl.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
lbl.connect("button-press-event",function)
我有一张地图我必须添加属性,我发现 GtkOverlay 似乎是正确的小部件。不幸的是我可以添加一个标签,例如,它显示在地图小部件上......但即使标签不是那么高,没有设置为填充,它仍然会从下面的地图中删除所有交互。
overlay = Gtk.Overlay()
overlay.add(self.osm)
top_container = Gtk.VBox()
btmlbl = Gtk.Label("(c) so and so");
top_container.pack_end(btmlbl, False, False, 0)
self.vbox.pack_start(overlay, True, True, 0)
overlay.add(btmlbl)
overlay.add_overlay(top_container)
如何让叠加层仅覆盖一个标签、图像以进行点击交互仅当光标位于该元素上时??
答案在文档中...
overlay.set_overlay_pass_through(container,True)
overlay.set_overlay_pass_through(labelcontrol,False)
实际上,labelcontrol 并不需要它,只要它具有使其可点击的调整即可:
lbl.set_has_window(True)
lbl.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
lbl.connect("button-press-event",function)