我怎样才能拥有一个根据鼠标位置变化的 GTKLabel?
How can I have a GTKLabel which changes based on mouse position?
我已阅读文档,但找不到相关内容。
例如,如果我有一个 table 并将鼠标悬停在左上角,它会显示 (0, 0),并且它会根据我下一个鼠标的位置相应地改变。
不确定你的目的是什么,可能有更好的方法来实现你的最终目标,但无论如何,
您必须将信号连接到要跟踪鼠标的小部件。该信号来自 GtkWidget,名为 motion-notify-event。信号处理程序将接收带有鼠标 x 和 y 坐标的事件。
如果您想在 GtkTable(继承自 GtkWidget)上方时跟踪鼠标,只需将信号连接到它并让回调更新 GtkLabel。
编辑:
如@jku 所述,某些小部件不会收到这些事件,因为它们没有 GdkWindow。最好的选择可能是将 table 添加到 EventBox 容器中,然后按照前面所述进行操作。另外,这个问题已经提出 here.
我已阅读文档,但找不到相关内容。 例如,如果我有一个 table 并将鼠标悬停在左上角,它会显示 (0, 0),并且它会根据我下一个鼠标的位置相应地改变。
不确定你的目的是什么,可能有更好的方法来实现你的最终目标,但无论如何,
您必须将信号连接到要跟踪鼠标的小部件。该信号来自 GtkWidget,名为 motion-notify-event。信号处理程序将接收带有鼠标 x 和 y 坐标的事件。
如果您想在 GtkTable(继承自 GtkWidget)上方时跟踪鼠标,只需将信号连接到它并让回调更新 GtkLabel。
编辑:
如@jku 所述,某些小部件不会收到这些事件,因为它们没有 GdkWindow。最好的选择可能是将 table 添加到 EventBox 容器中,然后按照前面所述进行操作。另外,这个问题已经提出 here.