我有一个使用 ScrolledWindow 的 GTK/C++ 程序。我一直在滚动窗口中的列表中添加数据,并且我想将注意力集中在最新的项目上。但我也希望允许用户滚动数据以选择旧项目。有没有办法做到这一点?我到处寻找,但找不到任何东西。
问问题
2550 次
2 回答
1
我不太清楚您的问题是什么意思,但我认为您的意思是:当您将项目添加到列表中时,它们会添加到列表当前可见部分的下方。因此,如果您开始查看列表的底部,然后添加很多项目,您最终会查看列表的中间部分。您想要的是每次添加项目时滚动到列表底部。
如果这是正确的,那么每次添加项目时只需将窗口滚动到底部:
Gtk::Adjustment *adj = scrolled_window.get_vadjustment();
adj->set_value(adj->get_upper());
while(Gtk::Main::events_pending())
Gtk::Main::iteration();
于 2010-04-15T06:14:32.697 回答
0
我有同样的问题(在 GTKmm 上开发)
正如@ptomato 所建议的那样
但是在设置 vadjustment 的值之前应该首先出现 while 循环。(为我工作)
while(Gtk::Main::events_pending())
Gtk::Main::iteration();
Gtk::Adjustment *adj =scrolled_window.get_vadjustment();
adj->set_value(adj->get_upper());
于 2021-04-03T15:50:23.487 回答