Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用ImGui为嵌套的树视图ui组件构建良好的抽象?_C++_Imgui - Fatal编程技术网

C++ 如何使用ImGui为嵌套的树视图ui组件构建良好的抽象?

C++ 如何使用ImGui为嵌套的树视图ui组件构建良好的抽象?,c++,imgui,C++,Imgui,我想使用ImGui创建一个嵌套的树视图ui组件。结果如下所示: 这是创建selectible()元素嵌套所需的代码,如下所示: 此代码还使小箭头和可选择可独立单击,这非常好。这意味着我可以在单击箭头旁边的可选时触发事件: 因为用这种方式手动编码很容易出错,所以我想我应该使用递归来创建那些嵌套元素。你怎么做?< /P>请不要标记C++代码,因为C.imgui有C绑定,也许它有Python和VB.NET绑定,这在这里是不相关的。你的代码是C++,这就是最重要的。寻找C++问题的人会发现这一点,

我想使用ImGui创建一个嵌套的树视图ui组件。结果如下所示:

这是创建
selectible()
元素嵌套所需的代码,如下所示:

此代码还使小箭头和
可选择
可独立单击,这非常好。这意味着我可以在单击箭头旁边的
可选
时触发事件:


因为用这种方式手动编码很容易出错,所以我想我应该使用递归来创建那些嵌套元素。你怎么做?< /P>请不要标记C++代码,因为C.imgui有C绑定,也许它有Python和VB.NET绑定,这在这里是不相关的。你的代码是C++,这就是最重要的。寻找C++问题的人会发现这一点,并能有所帮助。寻找C问题的人会发现C++代码,这是浪费他们的时间。请不要标记C++代码,因为C.imgui有C绑定,也许它有Python和VB.NET绑定,这在这里是不相关的。你的代码是C++,这就是最重要的。寻找C++问题的人会发现这一点,并能有所帮助。寻找C问题的人会发现C++代码,这是浪费他们的时间。
void imgui_nested_tree() {
    bool is_expanded = ImGui::TreeNodeExV( (void*)nullptr, ImGuiTreeNodeFlags_FramePadding, "", nullptr);
    ImGui::SameLine();
    ImGui::Selectable("outer selectable", false); 
    if (is_expanded) {
        bool is_expanded = ImGui::TreeNodeExV( (void*)nullptr, ImGuiTreeNodeFlags_FramePadding, "", nullptr);
        ImGui::SameLine();
        ImGui::Selectable("inner1 selectable", false);
        if (is_expanded) {
            // and so on...
        }
    }
}