到6个就换行
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-21 14:00:34 |
👁️ 阅读: 14
```lua
-- 创建6个按钮并自动换行
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
local startX = 50
local startY = 100
local btnWidth = 80
local btnHeight = 40
local spacing = 10
local maxPerRow = 6 -- 每行最多6个
for i = 1, 12 do -- 创建12个按钮测试
-- 计算行号和列号
local row = math.floor((i - 1) / maxPerRow)
local col = (i - 1) % maxPerRow
-- 计算坐标
local x = startX + col * (btnWidth + spacing)
local y = startY - row * (btnHeight + spacing)
-- 创建按钮
local btn = GUI:Button_Create(parent, "btn_"..i, x, y, "res/public/1900000612.png")
GUI:Button_setTitleText(btn, "按钮"..i)
-- 设置按钮点击事件
GUI:addOnClickEvent(btn, function()
SL:print("按钮"..i.."被点击")
end)
end
```
这个代码实现了:
1. 每行最多6个按钮,超过6个自动换行
2. 使用 `math.floor((i - 1) / maxPerRow)` 计算行号
3. 使用 `(i - 1) % maxPerRow` 计算列号
4. 根据行列号计算每个按钮的坐标位置
5. 创建了12个按钮进行演示,你可以根据需要调整数量
关键点:
- `maxPerRow = 6` 控制每行最大数量
- 行号计算:`row = math.floor((i - 1) / maxPerRow)`
- 列号计算:`col = (i - 1) % maxPerRow`
- 坐标计算基于起始位置和间距
这样就能实现"到6个就换行"的效果了!
← 返回问答库