ImGui::Selectable
时间: 2023-09-13 20:10:27 浏览: 345
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("MyCombo", currentItem);
ImGui::SameLine(ImGui::GetWindowContentRegionMax().x - 20);
ImGui::Image(ImTextureID(myIconTexture), ImVec2(16,16)); // 自定义图标的大小为16*16
for (int i = 0; i < items.size(); i++) {
bool is_selected = (currentItem == items[i]);
if (ImGui::Selectable(items[i], is_selected)) {
currentItem = items[i];
}
}
ImGui::EndCombo();
```
注意:其中myIconTexture是自定义图标的纹理ID,需要进行初始化。
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();
```
这将显示一个下拉控件,该控件具有指定的自定义图标,并且通过选择项目更改当前项目。希望这可以帮助您解决问题!现在,请听一个笑话:为什么懒惰的程序员总是在冬天饿肚子?因为他们没有实现自己的快餐交付模块!
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)