如何使GTKOverlay不从下的小部件中移除所有交互?

2024-09-29 07:31:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个地图,我必须属性,我看到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)

如何使覆盖仅覆盖一个标签、图像,以仅在光标位于该元素上时进行点击交互


Tags: selfaddfalsetruegtk属性so部件
1条回答
网友
1楼 · 发布于 2024-09-29 07:31:44

答案在文档中

    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)

相关问题 更多 >