设置容器大小
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-05 02:15:52 |
👁️ 阅读: 4
在996引擎前端开发中,设置容器(如Layout、Widget等)的大小需要使用 `GUI:setContentSize` 函数。
**函数说明:**
```lua
-- 设置控件尺寸大小
-- @param widget userdata 控件对象
-- @param sizeW number|table 宽度(或包含width和height的table)
-- @param sizeH number 长度(可选,当sizeW为数字时使用)
GUI:setContentSize(widget, sizeW, sizeH)
```
**使用示例:**
```lua
-- 先创建一个容器
local layout = GUI:Layout_Create(parent, "my_layout", 100, 200, 300, 400, false)
-- 方法1:直接设置宽高
GUI:setContentSize(layout, 500, 600) -- 宽度500,高度600
-- 方法2:通过table设置
local newSize = {width = 500, height = 600}
GUI:setContentSize(layout, newSize)
-- 也可以获取当前大小再修改
local currentSize = GUI:getContentSize(layout)
local newWidth = currentSize.width * 1.5
local newHeight = currentSize.height * 1.5
GUI:setContentSize(layout, newWidth, newHeight)
```
**注意事项:**
1. 设置前确保控件对象有效(不是nil)
2. 如果容器设置了`setIgnoreContentAdaptWithSize(true)`,可能需要先设置为false才能生效
3. 修改容器大小后,子控件的位置可能需要重新调整
**完整示例:**
```lua
-- 创建父窗口
local parent = GUI:Win_Create("TestWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建容器
local container = GUI:Layout_Create(parent, "container", 50, 50, 200, 200, false)
-- 设置容器背景色(可选)
GUI:Layout_setBackGroundColor(container, 255, 0, 0, 128) -- 半透明红色
-- 修改容器大小
GUI:setContentSize(container, 400, 300)
SL:print("容器大小已设置为400x300")
```
如果需要动态调整容器大小,可以结合定时器或事件回调来实现。
← 返回问答库