我在滚动窗口内有一个绘图区域(带有方便视口), 并且此绘图区域根据传入的动作通知事件自行更新。 当我滚动该区域时,显然没有发出任何运动事件, 但我想解决这个问题,所以试图连接绘图区域 “scroll-event”信号指向同一个motion-notify回调。
我面临的问题是在滚动窗口之前发出此信号 已经更新了它的视口,所以在回调中,我最终得到的指针坐标在滚动之前是真的,使得它看起来像绘图区域总是“落后”实际指针在滚动而不移动指针本身时。 我认为我可以通过用gdk_window_get_pointer手动提取坐标来弥补这一点,但后来我意识到这不起作用,因为当回调开始时指针在技术上仍处于旧位置。 我也尝试过使用g_signal_connect_after,希望在滚动视口后调用回调,但它没有帮助。
我最后的希望是在滚动事件上启动一个计时器,并在最短的时间后使回调发生火灾,但这听起来很丑陋,我想不惜一切代价避免这种情况。
关于如何实现这一点的任何想法? 提前谢谢!
答案 0 :(得分:1)
解决方案是连接到GtkScrolledWindow的"value-changed"信号 调整。
来源:https://mail.gnome.org/archives/gtk-app-devel-list/2011-September/msg00014.html