c - 识别gtk中滚动条的向上/向下移动

标签 c scroll gtk scrollbar gtk2

  1. 我创建了一个 gtk 滚动窗口。
  2. 我附加了一个 gtk TreeView
  3. 我已经为垂直滚动目的创建了 gtk 调整
  4. 我已经创建了 gtk 垂直滚动条并进行了调整 上面创建的。
  5. 我用一些数据填充了 TreeView 。
  6. 我试图在滚动条向上或向下移动时捕获信号 使用:

gtk_signal_connect(GTK_OBJECT(vscrollbar), "value_changed",G_CALLBACK(my_function),NULL);

我的信号处理程序如下所示:

void  my_function(GtkWidget *widget)
{
printf("Hi\n");
}

如上所示,每当滚动条向上移动一步或向下移动一步时,它都会打印一个 Hi 。 但我想在向上移动时打印 up 或在向下移动时打印 down

void  my_function(GtkWidget *widget)
{
if(/*  movement is up, How to identify? */)
printf("UP\n");
if(/* movement is down, How to identify */)
printf("DOWN\n");
}

对于 gtk 编程,我是一个全新的人。 有人可以建议我为此需要做什么吗?

最佳答案

首先,建议:检查最新的 API 引用,即使您必须使用旧的库。这将帮助您避免编写已经过时的代码(对于任何使用当前 GTK+ 的人来说,gtk_signal_connect 和 GTK_OBJECT 看起来相当......古老)。如果您确实可以使用当前的 GTK+,那就这样做。

对于您的问题,您是正确的,API 没有告诉您变化的方向或幅度。您可以在信号处理程序中使用“static gdouble last_value”,并将其与当前值进行比较以找出方向(并且不要忘记在之后设置last_value :))。

关于c - 识别gtk中滚动条的向上/向下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17088586/

相关文章:

python - 每秒更新 GTK+ MenuItem 倒计时,并定期调用函数

python - 如何在 Python 3.4 中隐藏 Gtk+ FileChooserDialog?

python - Python 中的 GUI 与 TUI

c - 需要帮助编写一个将所有目标文件创建到新子目录中的 Makefile

c - 为什么 scanf() 函数打印到我的标准输出流?我该如何抑制这种行为?

c++ - 通过 C 中的指针从 R 中的 big.matrix 访问一 block 内存

即使回声关闭也无法禁用转义回声

html - 网站不会在某些浏览器上向下滚动

c# - 如何在 Web 浏览器控件中垂直向下滚动

python - Tkinter - 如何停止在 Canvas 窗口上方滚动