local nimg = "res/private/gui_edit/CheckBox_Normal.png"
local pimg = "res/private/gui_edit/CheckBox_Press.png"
local box = GUI:CheckBox_Create(GUI:Attach_LeftBottom(), "checkBox" .. math.random(9999), 100 , 300,nimg, pimg)
GUI:setEnabled(box, false
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-08 16:21:45 |
👁️ 阅读: 0
代码中设置复选框禁用状态图片不生效,是因为在设置禁用状态图片之前,已经将复选框控件 `box` 设置为禁用状态 (`GUI:setEnabled(box, false)`)。
根据浮生梦老师前端课程内容,`GUI:CheckBox_loadTextureFrontCrossDisabled` 函数是用来设置复选框在**禁用状态**下的选中图标(即打勾图标)的。但是,这个图标只有在复选框**被选中且处于禁用状态**时才会显示。
在你的代码中,虽然设置了禁用状态的选中图标,但并没有调用 `GUI:CheckBox_setSelected(box, true)` 将复选框设置为选中状态。因此,即使控件被禁用了,由于它没有被选中,所以不会显示你设置的 `'res/public/1900000657.png'` 这个图片。
为了让禁用状态的选中图标生效,你需要确保复选框同时满足两个条件:
1. 被设置为选中状态。
2. 被设置为禁用状态。
修改后的代码示例如下:
```lua
local nimg = "res/private/gui_edit/CheckBox_Normal.png"
local pimg = "res/private/gui_edit/CheckBox_Press.png"
local box = GUI:CheckBox_Create(GUI:Attach_LeftBottom(), "checkBox" .. math.random(9999), 100 , 300, nimg, pimg)
-- 1. 首先将复选框设置为选中状态
GUI:CheckBox_setSelected(box, true)
-- 2. 设置复选框在禁用状态下的选中图标
local ii = 'res/public/1900000657.png'
GUI:CheckBox_loadTextureFrontCrossDisabled(box, ii)
-- 3. 最后将复选框设置为禁用状态
GUI:setEnabled(box, false)
```
这样,当复选框显示时,它就会处于“选中且禁用”的状态,并显示出你设置的禁用状态选中图标了。
如果还有其他问题,随时可以问我!
← 返回问答库