ImGui::BeginCombo() 如何修改图标为自定义图标
时间: 2024-06-07 09:05:10 浏览: 78
你好啊!对于你的问题,我可以告诉你,可以通过在ImGui::BeginCombo()函数中使用ImTextureID来实现自定义图标。具体的代码实现可以参考ImGui官网或者相关的开源项目。那么,来听一个笑话吧:有一只鸟从巢里飞了出来,但是巢里的鸟蛋还没孵化,于是这只鸟回到了巢里,把鸟蛋踩烂了。这就是为什么有些人出门后会突然想起自己忘记锁门了。哈哈,好笑吗?
相关问题
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();
```
这将显示一个下拉控件,该控件具有指定的自定义图标,并且通过选择项目更改当前项目。希望这可以帮助您解决问题!现在,请听一个笑话:为什么懒惰的程序员总是在冬天饿肚子?因为他们没有实现自己的快餐交付模块!