0

我有一个应用程序,它会将 a 添加到 aWidgetHBox,它包含在 a 中ScrolledWindow。添加a 时Widget,我希望父ScrolledWindow级向右滚动,即新添加Widget的位置。添加小部件效果很好,我的问题是:

添加孩子时如何使 ScrolledWindow 移动?

我的 Vala 代码如下所示:

private void addView() {
    var widget = this.createWidget();

    this.box.pack_start(widget);                   // this.box is a HBox
    widget.show_all();

    var adj = this.parent_win.get_hadjustment();   //  parent_win is a ScrolledWindow
    adj.set_value(adj.get_upper());
}

我现在得到的行为是调整将在每隔一次双击时起作用(这表明了这一切)。我希望在每次双击时进行调整。

更新我已经看到了:Gtk,如何在视口列表底部滚动?,但没有给出真正确定的答案。你的意思是告诉我我必须设置 1 秒超时才能滚动?

4

1 回答 1

1

使用空闲回调而不是超时,并使用 GtkContainer::add 信号在添加新子项时获得通知 (http://developer.gnome.org/gtk/unstable/GtkContainer.html#GtkContainer-add)。

于 2011-09-03T15:08:24.093 回答