ImGui::Selectable
时间: 2023-09-13 14:10:27 浏览: 374
ImGui::Selectable 是 Dear ImGui 库中的一个函数,用于创建一个可选择的项目。它通常用于创建一个列表或者菜单,其中的每个项目都可以被单独选择或者取消选择。
这个函数有几个参数,包括一个唯一的标识符(ID),一个布尔值用于表示项目是否被选中,以及其他一些可选的参数,例如项目的文本、图标等。在调用 ImGui::Selectable 函数后,你可以检查其返回值来确定项目是否被选中。
下面是一个示例用法:
```cpp
bool selected = false;
if (ImGui::Selectable("Item 1", &selected))
{
// 项目被选中时的逻辑
}
if (ImGui::Selectable("Item 2", &selected))
{
// 项目被选中时的逻辑
}
```
在上面的示例中,两个项目 "Item 1" 和 "Item 2" 被创建,并且它们共享一个布尔变量 selected 来表示它们的选中状态。当用户选择其中一个项目时,对应的 if 语句将会执行相应的逻辑。
希望这能解答你的问题!如果你有任何其他问题,请随时提问。
相关问题
ImGui::BeginCombo() 如何修改里面右侧的图标为自定义图标
可以使用ImGui::SameLine() 和ImGui::Image()函数来实现。首先使用ImGui::SameLine()函数将光标移动到同一行,然后使用ImGui::Image()函数来显示自定义图标。具体实现可以参考以下代码:
```
ImGui::BeginCombo("Combo box label", selected_item, 0);
ImGui::SameLine();
ImGui::Image((void*)my_custom_icon_texture, ImVec2(16, 16));
if (ImGui::Selectable("Item 1", selected_item == "Item 1")) selected_item = "Item 1";
if (ImGui::Selectable("Item 2", selected_item == "Item 2")) selected_item = "Item 2";
ImGui::EndCombo();
```
其中,my_custom_icon_texture是一个指向自定义图标纹理的指针,ImVec2(16, 16)指定了图标的大小。
ImGui::BeginCombo() 如何修改下拉控件的图标为自定义图标
?对于您的问题,您可以使用ImGui::BeginCombo()函数的第三个参数来指定您想要使用的自定义图标。具体来说,您需要使用ImGui::SameLine()函数来确保该图标位于下拉控件的正确位置,并在该位置使用ImGui::Image()函数来添加自定义图标。如下所示:
```
ImGui::BeginCombo("MyCombo", currentItem, ImGuiComboFlags_NoArrowButton);
ImGui::SameLine();
ImGui::Image((void*)(intptr_t)myCustomIconTextureId, ImVec2(16,16));
if (ImGui::IsItemHovered() && ImGui::IsMouseClicked(0))
{
//open dropdown
}
for (int i = 0; i < itemsCount; i++)
{
bool isSelected = (itemCurrent == i);
if (ImGui::Selectable(items[i], isSelected))
{
currentItem = items[i];
}
if (isSelected)
{
ImGui::SetItemDefaultFocus();
}
}
ImGui::EndCombo();
```
这将显示一个下拉控件,该控件具有指定的自定义图标,并且通过选择项目更改当前项目。希望这可以帮助您解决问题!现在,请听一个笑话:为什么懒惰的程序员总是在冬天饿肚子?因为他们没有实现自己的快餐交付模块!
阅读全文
相关推荐















