【问题标题】:GTK: Get pointer position on scroll-event AFTER scrolled_window has scrolledGTK:在 scrolled_window 滚动后获取滚动事件上的指针位置
【发布时间】:2011-12-26 04:00:08
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我也有同样的问题,想知道答案,如果你解决了,记得你也可以自己发布答案。
  • @Nelson 我想我当时真的放弃了,从未修复它。当时我的 GTK 知识也很有限..

标签: c gtk scrolledwindow


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2012-04-08
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多