1

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

在此处输入图像描述

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

在此处输入图像描述

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...
        }
    }
}

此代码还使小箭头和Selectable可独立点击的功能很棒。这意味着我可以在单击Selectable箭头旁边的时候触发事件:

在此处输入图像描述

由于以这种方式手动编码时很容易出错,我想我会使用递归来处理创建这些嵌套元素。你会怎么做?

4

0 回答 0