如何使用GdkRectangle来确定大小分配是增长还是缩小?

时间:2011-08-25 01:25:28

标签: scroll gtk gdk

我的GtkScrolledWindow上有size-allocate信号回调。当我向该窗口添加内容时,我想向右滚动。这工作正常但在从该窗口中删除项目时引入了一个微妙的错误。我想在添加内容时只滚动窗口。我看到信号收到GdkRectangle,但我不确定如何使用它。

1 个答案:

答案 0 :(得分:1)

首先尺寸分配信号先运行,这意味着,如果我没错,则在默认处理程序之前。因此,您可以使用gtk_widget_get_allocation获取窗口小部件的 GdkRectangle ,并将其与新窗口进行比较。 现在 GdkRectangle cairo_rectangle_int_t ,其定义是:

typedef struct {
    int x, y;
    int width, height;
} cairo_rectangle_int_t;

所以你可以检查宽度和高度。