2

我在滚动窗口内有一个绘图区域(带有方便的视口),该绘图区域根据传入的运动通知事件自行更新。当我滚动该区域时,虽然显然没有发出任何运动事件,但我想解决这个问题,因此尝试将绘图区域的“滚动事件”信号连接到相同的运动通知回调。

我在这里面临的问题是这个信号是在滚动窗口更新其视口之前发出的,所以在回调中,我最终得到的指针坐标在滚动之前是真的,使它看起来像绘图区域总是“在不移动指针本身的情况下滚动时落后于实际指针。我以为我可以通过使用 gdk_window_get_pointer 手动提取坐标来弥补这一点,但后来我意识到这不起作用,因为当回调开始时指针在技术上仍处于其旧位置。我还尝试使用 g_signal_connect_after 希望它会在滚动视口后调用回调,但它没有帮助。

我最后的希望是在滚动事件上启动一个计时器,并在最短的时间后触发回调,但这听起来很丑陋,我想不惜一切代价避免这种情况。

关于如何实现这一点的任何想法?提前致谢!

4

1 回答 1

1

一个解决方案是连接到 GtkScrolledWindow 调整的“值改变”信号。

来源:https ://mail.gnome.org/archives/gtk-app-devel-list/2011-September/msg00014.html

于 2013-10-21T09:12:49.053 回答