GTK滚动窗口 - 将滚动条保持在底部

时间:2010-04-14 20:48:09

标签: c++ gtk scrolledwindow

我有一个使用ScrolledWindow的GTK / C ++程序。我一直在滚动窗口中的列表中添加数据,我想继续关注最新的项目。 但我也希望允许用户滚动数据以选择旧项目。 有没有办法做到这一点?我到处寻找但找不到任何东西。

2 个答案:

答案 0 :(得分:1)

我不太清楚你的问题是什么意思,但这就是我的意思:当你在列表中添加项目时,它们会被添加到列表当前可见部分的下方。因此,如果你开始查看列表的底部,然后添加很多项目,你最终会看到列表的中间位置。你想要的是每次添加一个项目时滚动到列表的底部。

如果这是正确的,那么每次添加项目时只需将窗口滚动到底部:

Gtk::Adjustment *adj = scrolled_window.get_vadjustment();
adj->set_value(adj->get_upper());
while(Gtk::Main::events_pending())
    Gtk::Main::iteration();

答案 1 :(得分:0)

我遇到了同样的问题(在 GTKmm 上开发)

正如@ptomato 所建议的

但是while循环应该在设置之前先出现 调整值。 (为我工作)

   while(Gtk::Main::events_pending())
         Gtk::Main::iteration();
   Gtk::Adjustment *adj =scrolled_window.get_vadjustment();
   adj->set_value(adj->get_upper());