ImGui::BeginCombo() 如何修改里面右侧的图标为自定义图标
时间: 2024-05-12 18:17:34 浏览: 79
可以使用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::SetWindowFontScale()函数来修改图标大小,然后使用ImGui::Image()函数来加载自定义图标。例如:
float iconSize = ImGui::GetTextLineHeight();
ImGui::SetWindowFontScale(1.5f);
ImGui::Image(myCustomIcon, ImVec2(iconSize, iconSize));
其中,myCustomIcon是你自己定义的图标,需要先加载到内存中。
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();
```
这将显示一个下拉控件,该控件具有指定的自定义图标,并且通过选择项目更改当前项目。希望这可以帮助您解决问题!现在,请听一个笑话:为什么懒惰的程序员总是在冬天饿肚子?因为他们没有实现自己的快餐交付模块!
阅读全文