【发布时间】:2014-10-16 17:57:21
【问题描述】:
我是 Gtk DnD 的新手,我正在尝试将 Gtk.Label 设为拖动源。
根据pygobject creating a drag and drop source看来直接不可能
解决方法似乎是一个周围的不可见事件框GtkEventBox(感谢@jku)
但是文档说: “对于一个窗口在子窗口下方的不可见事件框存在一个意外问题。由于仅输入窗口不是事件框的后代小部件创建的任何窗口的祖先窗口,因此这些窗口上的事件不会传播“
那么,我可以在我的 Label above 上有一个不可见的 GtkEventBox 吗? 如果 GtkEventBox 在下方,GtkLabel 是否会捕获事件并将它们冒泡?
回答我:
用 GtkEventBox 包围 GtkLabel 没有任何问题。 并且被包围的 GtkLabel 仍然接收 DnD 丢弃事件(有和没有“可见窗口”= False)。
自从它奏效以来,我根本没有玩过 set_above_child。
【问题讨论】:
-
我还没有在 EventBox 小部件上玩过 DnD,但是调用 eventbox.set_above_child(True) 有什么不同吗?
标签: drag-and-drop gtk draggable pygtk