Gtk,如何在视口列表底部滚动?

Use*_*337 0 gtk

我用 GtkVBox 和 GtkViewPort 创建了一个列表。
我正在通过两个上/下 GtkButtons 滚动。

    GtkAdjustment* adjustment;
    adjustment = gtk_viewport_get_vadjustment(GTK_VIEWPORT(viewport_ptr));
    gtk_adjustment_set_value(adjustment, gtk_adjustment_get_value(adjustment)+(gdouble)SCROLL_SIZE);
    gtk_widget_show_all(viewport_ptr);
Run Code Online (Sandbox Code Playgroud)

但是当我将小部件添加到 VBox 时,它会在我使用时添加到 VBox 的末尾gtk_box_pack_start。所以我想将视口滚动到列表底部的这个新添加的最后一个小部件。

unw*_*ind 6

您是否尝试将调整设置为最大值:

gtk_adjustment_set_value(adjustment, gtk_adjustment_get_upper(adjustment));
Run Code Online (Sandbox Code Playgroud)

请注意,您可能需要延迟此操作,或从合适的事件中触发它,因为随着滚动的 vbox 增长,上限会发生变化。

我的建议是将它挂接到GtkVBox的大小分配信号中。