GUI:GetWindow 介绍使用详细
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-13 21:24:16 |
👁️ 阅读: 8
`GUI:GetWindow` 函数用于根据父控件和子控件的ID名称,获取该子控件的对象。
## 函数定义
```lua
local childWidget = GUI:GetWindow(parentWidget, childName)
```
## 参数说明
- **parentWidget** (必填, userdata): 父控件对象。
- **childName** (必填, string): 要查找的子控件ID名称。
## 返回值
- 返回找到的子控件对象(userdata类型)。
- 如果未找到,则返回`nil`。
## 使用示例
```lua
-- 假设已有一个父控件
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 在父控件下创建一个文本控件
local textWidget = GUI:Text_Create(parent, "Text_myName", 100, 100, 16, "#ffffff", "浮生梦")
-- 后续通过GetWindow获取该文本控件
local sameTextWidget = GUI:GetWindow(parent, "Text_myName")
if GUI:Win_IsNotNull(sameTextWidget) then
-- 修改文本内容
GUI:Text_setText(sameTextWidget, "新的名字")
end
```
## 实际案例
在浮生梦老师前端课程中,常见于动态更新UI时获取子项:
```lua
-- 动态设置文本颜色(参考知识库资料1)
GUI:Text_setTextColor(GUI:GetWindow(self.ui['monster_di_' .. i], 'Text_2'), '#FFF3CB')
```
## 注意事项
1. 使用前建议先用`GUI:Win_IsNotNull()`判断控件是否存在。
2. 控件ID在创建时必须保证唯一性,否则可能获取到错误的控件。
3. 该函数只能获取直接子控件,不支持跨层级查找。
这个函数在前端开发中非常实用,可以方便地管理动态创建的UI元素。
← 返回问答库