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