ImGui

imgui.create

创建一个 ImGui 窗口并返回其窗口句柄。活动窗口标题必须是唯一的。

语法

imgui.create(title?: string): ImGuiWindow

参数

名称类型描述
title?string窗口标题。省略时,将使用内置的默认标题。创建具有相同标题的第二个活动窗口会引发错误。

返回值

名称类型描述
windowImGuiWindow用于追加控件和销毁窗口的窗口句柄。

说明

创建一个 ImGui 窗口并返回其窗口句柄。活动窗口标题必须是唯一的。

使用 1 个参数调用: title。参数表会说明哪些值必填,哪些值只用于细化行为。

返回 window (ImGuiWindow)。使用返回表区分成功值、nil 结果和可恢复错误。

示例

使用文本、交互式控件和更改回调构建 ImGui 窗口。

local window = imgui.create("Runtime settings")

window:Text("Controls")
window:Separator()

window:Checkbox("Enabled", true, function(enabled)
    print("Enabled:", enabled)
end)

window:SliderFloat("Opacity", 0.8, 0, 1, function(value)
    print("Opacity:", value)
end)

window:InputText("Label", "Real", function(text)
    print("Label:", text)
end)

window:ColorPicker("Accent", 0.3, 0.6, 1, 1, function(red, green, blue, alpha)
    print(red, green, blue, alpha)
end)

window:CollapsingHeader("Advanced", function(section)
    section:Text("Advanced controls go here")
end)

类型

ImGuiWindow

imgui.create 返回的句柄。控制构建方法返回相同的句柄,因此可以链接调用。

Button (label: string, onClick: () -> ()) -> ImGuiWindow 添加一个按钮并在单击后调用回调。Checkbox (label: string, checked: boolean, onChange: (boolean) -> ()) -> ImGuiWindow 附加一个初始化为提供状态的复选框。CollapsingHeader (label: string, content: (ImGuiWindow) -> ()) -> ImGuiWindow 对折叠标题下方的内容回调附加的控件进行分组。ColorPicker (label: string, red: number?, green: number?, blue: number?, alpha: number?, onChange: (number, number, number, number) -> ()) -> ImGuiWindow 追加RGBA编辑器;省略的颜色分量默认为 1.0。InputText (label: string, text: string?, onChange: (string) -> ()) -> ImGuiWindow 追加单行文本输入;省略的初始文本默认为空字符串。SameLine () -> ImGuiWindow 将下一个控件放置在同一行上。Separator () -> ImGuiWindow 添加水平分隔符。SliderFloat (label: string, value: number, minimum: number, maximum: number, onChange: (number) -> ()) -> ImGuiWindow 添加浮点滑块。SliderInt (label: string, value: integer, minimum: integer, maximum: integer, onChange: (number) -> ()) -> ImGuiWindow 附加一个整数滑块。Text (text: string) -> ImGuiWindow 附加非交互式文本。destroy () -> () 删除窗口并释放其注册的回调。