我有指向位于同一个容器(GtkBox)中的两个不同小部件的指针。我想使用 gtk_box_reorder_child(container, widgetToMove, destinationIndex) 将其中一个的容器位置更改为另一个的索引:

GtkWidget *widgetToMove;
GtkWidget *target;
// Does something like 'gtk_get_container_index' exist ?
gint targetIndex = gtk_get_container_index(target)
gtk_box_reorder_child (myBox,widgetToMove,targetIndex);

...听起来很愚蠢,但是经过 15 分钟的搜索后,我仍然不知道如何在其容器中获取小部件的索引。

编辑:解决了,这里是解决方案
GtkWidget *widgetToMove;
GtkWidget *target;
GValue targetIndex = G_VALUE_INIT;
g_value_init (&targetIndex, G_TYPE_INT);
gtk_container_child_get_property(myBox,target,"position",&targetIndex);
gtk_box_reorder_child (myBox,widgetToMove,g_value_get_int(&targetIndex));

最佳答案

容器小部件保存了一堆“子属性”,您可以使用 container.child_get_property 查询它们。您正在寻找的属性称为“位置”。

关于c - Gtk3 - 如何获取小部件在其容器中的索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39355588/

10-09 07:12