关于 c:GTK:在 scrolled_window 滚动后获取滚动事件上的指针位置

GTK: Get pointer position on scroll-event AFTER scrolled_window has scrolled

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

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

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

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


一个解决方案是连接到 GtkScrolledWindow 的”value-changed”信号
调整。

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


原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269339.html

(0)
上一篇 2022年6月21日
下一篇 2022年6月21日

相关推荐

发表回复

登录后才能评论