如何从GTK顶部窗口返回树结构?

时间:2019-07-03 23:54:40

标签: c++ tree gtk

我正在一个项目中,该项目具有顶部窗口和一个功能,该功能可以为我提供有关特定小部件的所有信息。如果我可以访问顶部窗口并且具有此功能,那么获取与此小部件相对应的树信息的最佳方法是什么?

我的方法是拥有此函数,将其命名为getwinfo(),并且将顶部窗口称为window。如果窗口不是容器,则意味着它没有子级,因此我将使用getwinfo()返回相应的数组,该数组返回该小部件的属性。如果窗口是容器,则我递归地遍历该窗口以获取该小部件的树结构。

static void getwinfo(window){
   //stores widget properties into jsonarray}


static void GTKTree(window){
if (!GTK_CONTAINER(window)){

            getwinfo(window);
        }

   GList *children = gtk_container_get_children(GTK_CONTAINER(window));
        GList *l;

        for (l = children; l != NULL; l = l->next)
        {
             children GetGTKTree((GtkWidget *)l->data);
        }
}

这将返回一个平面数组,但是我想要返回的窗口的树结构。这是我第一次使用GTK库,因此,我非常感谢您提供一些有关如何完成此操作的帮助。

0 个答案:

没有答案