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