三个按钮 选择那个那个变灰怎么写
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-14 12:18:27 |
👁️ 阅读: 2
根据浮生梦老师前端课程内容,实现三个按钮选择其中一个变灰的效果,可以这样写:
```lua
-- 创建父节点
local parent = GUI:Win_Create("ButtonGroupDemo", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建三个按钮
local button1 = GUI:Button_Create(parent, "btn_1", 50, 100, "res/public_win32/1900000612.png")
local button2 = GUI:Button_Create(parent, "btn_2", 150, 100, "res/public_win32/1900000612.png")
local button3 = GUI:Button_Create(parent, "btn_3", 250, 100, "res/public_win32/1900000612.png")
-- 设置按钮文字
GUI:Button_setTitleText(button1, "按钮1")
GUI:Button_setTitleText(button2, "按钮2")
GUI:Button_setTitleText(button3, "按钮3")
-- 当前选中的按钮
local selectedButton = nil
-- 重置所有按钮为正常状态
local function resetAllButtons()
GUI:Button_setGrey(button1, false)
GUI:Button_setGrey(button2, false)
GUI:Button_setGrey(button3, false)
end
-- 按钮1点击事件
GUI:addOnClickEvent(button1, function()
resetAllButtons() -- 先重置所有按钮
GUI:Button_setGrey(button1, true) -- 当前按钮变灰
selectedButton = button1
SL:print("选择了按钮1")
end)
-- 按钮2点击事件
GUI:addOnClickEvent(button2, function()
resetAllButtons() -- 先重置所有按钮
GUI:Button_setGrey(button2, true) -- 当前按钮变灰
selectedButton = button2
SL:print("选择了按钮2")
end)
-- 按钮3点击事件
GUI:addOnClickEvent(button3, function()
resetAllButtons() -- 先重置所有按钮
GUI:Button_setGrey(button3, true) -- 当前按钮变灰
selectedButton = button3
SL:print("选择了按钮3")
end)
-- 初始状态:第一个按钮为选中状态(变灰)
resetAllButtons()
GUI:Button_setGrey(button1, true)
selectedButton = button1
```
**核心函数说明:**
- `GUI:Button_setGrey(widget, value)` - 设置按钮是否为灰态,`true`为变灰,`false`为正常
- `resetAllButtons()` - 自定义函数,用于重置所有按钮状态
**实现原理:**
1. 创建三个按钮并设置点击事件
2. 每次点击时,先调用`resetAllButtons()`重置所有按钮为正常状态
3. 然后设置当前点击的按钮为灰态
4. 使用`selectedButton`变量记录当前选中的按钮
这样就能实现三个按钮中,点击哪个哪个就变灰的效果了!
← 返回问答库