0

に含まれる にWidgetを追加するアプリケーションがあります。aが追加されたら、新しく追加された親が右にスクロールするようにします。ウィジェットの追加は問題なく機能します。私の問題は次のとおりです。HBoxScrolledWindowWidgetScrolledWindowWidget

子が追加されたときに 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());
}

私が今得ている動作は、調整が1回おきのダブルクリックで機能することです(これがすべてのシグナルです)。ダブルクリックするたびに調整が行われるようにしたいと思います。

更新私はこれを見ました:Gtk、ビューポートリストの一番下でスクロールする方法は? 、しかし、与えられた本当の決定的な答えはありません。スクロールするのに 1 秒のタイムアウトを設定する必要があるということですか?

4

1 に答える 1

1

タイムアウトの代わりにアイドル コールバックを使用し、GtkContainer::add シグナルを使用して、新しい子が追加されたときに通知を受け取ります (http://developer.gnome.org/gtk/unstable/GtkContainer.html#GtkContainer-add)。

于 2011-09-03T15:08:24.093 に答える