如何在GTK +中找到给定方向的下一个小部件?

时间:2014-04-22 22:26:53

标签: gtk direction

我想知道哪个小部件在GTK +的给定方向上,即执行“移动焦点”信号的操作,但实际上没有改变焦点。我想到的是一个函数,它接受GtkWidget *和GtkDirectionType并返回给定方向的GtkWidget(如果有的话)。

我想要的是最终按照从左到右的顺序枚举我的UI定义中特定GtkFrame中的小部件。即基本上在我的GtkFrame内部(或者在一般情况下,在任何容器内)创建从最左边到最右边的小部件列表。

我试图搜索GTK文档,但没有找到任何不会改变焦点的内容。

2 个答案:

答案 0 :(得分:1)

如果没有采用任何其他方法,我正在采用的方法是从GtkContainer的库实现中复制一组选定的静态函数,并将它们放在我自己的应用程序的文件中,根据我的需要进行修改。 / p>

更具体地说,函数gtk_container_focus_sort_left_right()和它依赖的任何本地函数。这包括GCompareFunc left_right_compare()和get_allocation_coords()。

答案 1 :(得分:0)

假设您关心的路线是"转发"和#34; Backward",听起来你想在框架上使用gtk_container_get_focus_chain():它几乎与它在锡上的内容相同:在标签时按焦点顺序获取小部件列表。