给复选框添加点击事件
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-14 11:06:43 |
👁️ 阅读: 13
根据浮生梦老师前端课程内容,给复选框添加点击事件可以使用以下方式:
**方法1:直接添加点击事件**
```lua
-- 创建复选框
local checkBox = GUI:CheckBox_Create(parent, "my_checkbox", 100, 100,
"res/private/chat/1900012820.png", -- 未选中状态图片
"res/private/chat/1900012821.png") -- 选中状态图片
-- 添加点击事件
GUI:addOnClickEvent(checkBox, function()
local isSelected = GUI:CheckBox_isSelected(checkBox)
SL:print("复选框状态:" .. (isSelected and "已选中" or "未选中"))
-- 可以在这里处理状态变化逻辑
if isSelected then
-- 选中时的处理
else
-- 未选中时的处理
end
end)
```
**方法2:在设置面板中使用的完整示例**
```lua
-- 创建开关容器
local CheckBox_able = GUI:Layout_Create(parent, "CheckBox_able", 154, 19, 44, 18, false)
GUI:setAnchorPoint(CheckBox_able, 0, 0.5)
GUI:setTouchEnabled(CheckBox_able, true)
-- 添加点击事件
GUI:addOnClickEvent(CheckBox_able, function()
local values = SL:GetMetaValue("SETTING_VALUE", data.id)
local enable = values[1] == 1
SL:SetMetaValue("SETTING_VALUE", data.id, { enable and 0 or 1 })
-- 刷新开关状态
-- func(not enable) -- 这里调用刷新函数
end)
```
**注意事项:**
1. 获取复选框状态使用 `GUI:CheckBox_isSelected(widget)`
2. 设置复选框状态使用 `GUI:CheckBox_setSelected(widget, value)`
3. 确保复选框控件启用了触摸:`GUI:setTouchEnabled(widget, true)`
如果需要实现点击复选框时切换状态,可以在点击事件中这样处理:
```lua
GUI:addOnClickEvent(checkBox, function()
local currentState = GUI:CheckBox_isSelected(checkBox)
GUI:CheckBox_setSelected(checkBox, not currentState)
end)
```
这样就能为复选框添加完整的点击事件处理逻辑了。
← 返回问答库