EG/test_docking.py
2026-01-16 09:36:35 +08:00

52 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
测试ImGui docking功能
"""
from direct.showbase.ShowBase import ShowBase
import p3dimgui
from imgui_bundle import imgui, imgui_ctx
class DockingTest(ShowBase):
def __init__(self):
ShowBase.__init__(self)
# Install Dear ImGui
p3dimgui.init()
# 启用ImGui Docking功能
imgui.get_io().config_flags |= imgui.ConfigFlags_.docking_enable
print("✓ ImGui Docking功能已启用")
# 添加任务
self.taskMgr.add(self.__newFrame, "imgui-new-frame")
def __newFrame(self, task):
# 创建全屏DockSpace在第一帧之后创建
if imgui.get_frame_count() > 0:
viewport = imgui.get_main_viewport()
imgui.dock_space_over_viewport(0, viewport, imgui.DockNodeFlags_.passthru_central_node)
# 测试窗口
if imgui.get_frame_count() > 10: # 等待几帧后显示
# 窗口1
with imgui_ctx.begin("测试窗口1", True):
imgui.text("这是第一个测试窗口")
imgui.text("你可以拖拽标题栏来移动窗口")
imgui.text("也可以拖拽到其他窗口边缘来停靠")
# 窗口2
with imgui_ctx.begin("测试窗口2", True):
imgui.text("这是第二个测试窗口")
imgui.text("尝试将这个窗口停靠到第一个窗口")
imgui.text("或者创建标签页")
# 窗口3
with imgui_ctx.begin("测试窗口3", True):
imgui.text("这是第三个测试窗口")
imgui.text("自由调整窗口大小和位置")
return task.cont
if __name__ == "__main__":
test = DockingTest()
test.run()