c - GTK:在滚动窗口滚动后获取滚动事件的指针位置

标签 c gtk scrolledwindow

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

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

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

关于如何实现这一点有什么想法吗? 提前致谢!

最佳答案

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

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

关于c - GTK:在滚动窗口滚动后获取滚动事件的指针位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632822/

相关文章:

python - 如何在 gtk.ScrolledWindow 内的 GtkTreeView 中显示列标题?

c - 函数更改其他变量的数据

Python 子进程给出错误的值(给出 8 位值而不是 64 位值)

c - 右键单击图标时出现无限 gtk 警告

c++ - 检查网络摄像头摄像头设备 gnome 库

c++ - GTK 滚动窗口 - 滚动到底部

c - 在 C 中返回一个数组

c - 如何确保没有人可以访问我的网络服务器中文档根目录之外的文件

c - 如何在 Make 中使用 pkg-config

c - gtk+ 以编程方式在包含 vte 终端的scrolled_window 中向后滚动一行