【发布时间】:2010-04-14 20:48:09
【问题描述】:
我有一个使用 ScrolledWindow 的 GTK/C++ 程序。我一直在滚动窗口内的列表中添加数据,并且我想将注意力集中在最新的项目上。 但我也希望允许用户滚动数据以选择旧项目。 有没有办法做到这一点?我到处找,但什么都找不到。
【问题讨论】:
标签: c++ gtk scrolledwindow
我有一个使用 ScrolledWindow 的 GTK/C++ 程序。我一直在滚动窗口内的列表中添加数据,并且我想将注意力集中在最新的项目上。 但我也希望允许用户滚动数据以选择旧项目。 有没有办法做到这一点?我到处找,但什么都找不到。
【问题讨论】:
标签: c++ gtk scrolledwindow
我不太清楚您的问题是什么意思,但我认为您的意思是:当您将项目添加到列表时,它们会添加到列表当前可见部分的下方。因此,如果您开始查看列表的底部,然后添加很多项目,您最终会查看列表的中间部分。您想要的是每次添加项目时滚动到列表底部。
如果正确,那么每次添加项目时只需将窗口滚动到底部:
Gtk::Adjustment *adj = scrolled_window.get_vadjustment();
adj->set_value(adj->get_upper());
while(Gtk::Main::events_pending())
Gtk::Main::iteration();
【讨论】:
我遇到了同样的问题(在 GTKmm 上开发)
@ptomato 建议
但是在设置之前应该先出现while循环 vadjustment 的值。 (为我工作)
while(Gtk::Main::events_pending())
Gtk::Main::iteration();
Gtk::Adjustment *adj =scrolled_window.get_vadjustment();
adj->set_value(adj->get_upper());
【讨论】: