[LUA-print] [23:48:36-526] 执行任务 3
[LUA-print] [23:48:36-526] 点击背包完成任务
[LUA-print] [23:48:36-526] parent 是否为 nil: false
[LUA-print] [23:48:36-528] widget 是否为 nil: false
[LUA-print] [23:48:36-528] parent 是否为空窗口: true
[LUA-print] [23:48:36-528] widget 是
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-25 23:49:10 |
👁️ 阅读: 13
从你的打印信息来看,问题出在窗口对象的判断上。虽然`parent`和`widget`都不是nil,但`GUI:Win_IsNull()`检查返回true,说明这两个对象是"空窗口"。
这种情况通常发生在:
1. 窗口对象已经被销毁或移除,但变量引用还在
2. 创建窗口时参数不正确
3. 在窗口被移除后继续使用
**解决方案:**
```lua
-- 创建窗口时确保参数正确
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 使用前检查窗口是否有效
if not GUI:Win_IsNull(parent) then
-- 创建子控件
local widget = GUI:Widget_Create(parent, "my_widget", 100, 200, 300, 400)
if not GUI:Win_IsNull(widget) then
-- 执行操作
SL:print("窗口创建成功")
else
SL:print("子窗口创建失败")
end
else
SL:print("父窗口无效,请重新创建")
end
```
**常见错误原因:**
1. 窗口创建后立即被移除
2. 使用`GUI:removeFromParent()`后继续使用该对象
3. 创建窗口时没有正确设置参数
建议检查你的代码逻辑,确保在窗口有效时才进行操作。如果还是有问题,可以把相关代码发给我看看!
← 返回问答库