GTK прокрутить до недавно добавленного потомка в контейнере - PullRequest
0 голосов
/ 31 августа 2011

У меня есть приложение, которое добавит Widget к HBox, который содержится в ScrolledWindow. Когда добавляется 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 секунду для прокрутки?

1 Ответ

1 голос
/ 03 сентября 2011

Используйте обратный вызов в режиме ожидания вместо тайм-аута и используйте сигнал GtkContainer :: add, чтобы получать уведомления при добавлении нового дочернего элемента (http://developer.gnome.org/gtk/unstable/GtkContainer.html#GtkContainer-add).

...