local t = {}
for i = 1, 10, 1 do
local nimg = "res/private/gui_edit/CheckBox_Normal.png"
local pimg = "res/private/gui_edit/CheckBox_Press.png"
t[i] = GUI:CheckBox_Create(GUI:Attach_LeftBottom(), "checkBox" .. math.random(9999), 100 + i
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-08 16:17:11 |
👁️ 阅读: 0
你的代码中设置禁用图片不起作用,主要问题是**顺序问题**和**状态设置**。根据浮生梦老师前端课程内容,复选框的禁用状态图片需要在正确时机设置。
## 问题分析:
1. `GUI:setEnabled(t[i], false)` 将复选框设为禁用状态
2. 但**禁用状态图片**可能需要在设置禁用状态前就配置好
3. 复选框在禁用状态下,`CheckBox_isSelected` 仍然可以获取选中状态
## 修正后的代码:
```lua
local t = {}
for i = 1, 10, 1 do
local nimg = "res/private/gui_edit/CheckBox_Normal.png"
local pimg = "res/private/gui_edit/CheckBox_Press.png"
-- 先创建复选框
t[i] = GUI:CheckBox_Create(GUI:Attach_LeftBottom(),
"checkBox" .. math.random(9999),
100 + i * 50, 300,
nimg, pimg)
if math.random(2) == 1 then
-- 先设置禁用状态图片
local disabledImg = 'res/public/1900000657.png'
GUI:CheckBox_loadTextureFrontCrossDisabled(t[i], disabledImg)
-- 再设置禁用状态
GUI:setEnabled(t[i], false)
-- 如果需要,可以设置选中状态
-- GUI:CheckBox_setSelected(t[i], true)
end
-- 获取复选框状态
SL:print(GUI:CheckBox_isSelected(t[i]))
end
```
## 关键点:
1. **先设置图片,再设置状态**:确保禁用图片在禁用状态生效前就加载
2. **禁用状态不影响选中状态**:即使复选框被禁用,`CheckBox_isSelected` 仍然可以正确返回选中/未选中状态
3. **图片路径要正确**:确保 `res/public/1900000657.png` 这个图片文件确实存在
如果还是不行,检查一下图片路径是否正确,或者尝试用绝对路径测试一下。
你的代码中设置禁用图片不起作用,主要问题是**顺序问题**和**状态设置**。根据浮生梦老师前端课程内容,复选框的禁用状态图片需要在正确时机设置。
## 问题分析:
1. `GUI:setEnabled(t[i], false)` 将复选框设为禁用状态
2. 但**禁用状态图片**可能需要在设置禁用状态前就配置好
3. 复选框在禁用状态下,`CheckBox_isSelected` 仍然可以获取选中状态
## 修正后的代码:
```lua
local t = {}
for i = 1, 10, 1 do
local nimg = "res/private/gui_edit/CheckBox_Normal.png"
local pimg = "res/private/gui_edit/CheckBox_Press.png"
-- 先创建复选框
t[i] = GUI:CheckBox_Create(GUI:Attach_LeftBottom(),
"checkBox" .. math.random(9999),
100 + i * 50, 300,
nimg, pimg)
if math.random(2) == 1 then
-- 先设置禁用状态图片
local disabledImg = 'res/public/1900000657.png'
GUI:CheckBox_loadTextureFrontCrossDisabled(t[i], disabledImg)
-- 再设置禁用状态
GUI:setEnabled(t[i], false)
-- 如果需要,可以设置选中状态
-- GUI:CheckBox_setSelected(t[i], true)
end
-- 获取复选框状态
SL:print(GUI:CheckBox_isSelected(t[i]))
end
```
## 关键点:
1. **先设置图片,再设置状态**:确保禁用图片在禁用状态生效前就加载
2. **禁用状态不影响选中状态**:即使复选框被禁用,`CheckBox_isSelected` 仍然可以正确返回选中/未选中状态
3. **图片路径要正确**:确保 `res/public/1900000657.png` 这个图片文件确实存在
如果还是不行,检查一下图片路径是否正确,或者尝试用绝对路径测试一下。
← 返回问答库