You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ImGui代码时标签页内窗口变灰的原因及解决请求

问题解决:ImGui标签页内窗口点击背景后失焦变灰

问题原因

你当前直接在ImGui::BeginTabItem()代码块里创建独立窗口,这些窗口不属于标签页的子容器。点击标签页黑色背景时,ImGui会把焦点设置到标签页本身,导致内部独立窗口被"遮挡"失焦,无法重新获取焦点。

解决方法

用ImGui::BeginChild()创建一个子窗口容器,把标签页内要显示的所有窗口放在这个子容器里。子容器会作为标签页的内部区域,点击其背景不会影响内部窗口的焦点状态,窗口能始终保持可操作。

修改后的代码

if(ImGui::BeginTabItem(plot_window[i].name))  
{    
    // 创建自动填充标签页的子容器
    ImGui::BeginChild("TabContent", ImVec2(0, 0), false);
    
    ImGui::SetNextWindowSize(ImVec2(200, 200), ImGuiCond_FirstUseEver);    
    ImGui::Begin("My first", &p_open);    
    ImGui::Text("窗口1内容");
    ImGui::End();    
    
    ImGui::SetNextWindowSize(ImVec2(200, 200), ImGuiCond_FirstUseEver);    
    ImGui::Begin("My second", &p_open);    
    ImGui::Text("窗口2内容");
    ImGui::End();    
    
    ImGui::EndChild(); // 结束子容器
    ImGui::EndTabItem();  
} 

补充说明

  • ImGui::BeginChild("TabContent", ImVec2(0, 0), false)里的ImVec2(0,0)让子容器自动填充标签页可用空间;最后一个参数false表示不显示子容器边框,需要边框可改为true。
  • 修改后内部窗口属于子容器的子元素,点击子容器背景不会被夺走焦点,无需强制调用SetWindowFocus,窗口始终保持交互性。

内容的提问来源于stack exchange,提问作者ogc21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:52:11