PythonIDE Docs
中文
简体中文

网格 API

LazyVGrid、LazyHGrid、Grid、GridRow 和轨道辅助函数。

LazyVGrid / LazyHGrid / Grid / GridRow 与轨道辅助函数 flexible / fixed / adaptive / grid_item。


#LazyVGrid

签名

text
LazyVGrid(columns=None, content=None, spacing=None, children=None)

参数

参数类型说明
columnslist[dict] \| None列描述列表;缺省为 [{'type': 'flexible'}]
content / childrenlist[View] \| None网格单元视图。
spacing数值 \| None单元间距。

示例

python
import appui

cols = [
    appui.flexible(minimum=40),
    appui.flexible(minimum=40),
    appui.fixed(50),
]

def body():
    return appui.LazyVGrid(
        columns=cols,
        spacing=8,
        content=[appui.Text(str(i)).frame(max_width=appui.infinity) for i in range(12)],
    ).padding()

appui.run(body, presentation="sheet")

参阅flexiblefixedadaptiveLazyHGrid


#LazyHGrid

签名

text
LazyHGrid(rows=None, content=None, spacing=None, children=None)

参数

参数类型说明
rowslist[dict] \| None行描述;缺省为 [{'type': 'flexible'}]
content / childrenlist[View] \| None子视图。
spacing数值 \| None间距。

示例

python
import appui

rows = [appui.flexible(), appui.fixed(36)]

def body():
    return appui.LazyHGrid(
        rows=rows,
        spacing=6,
        content=[appui.Text(f"({i})") for i in range(8)],
    ).padding()

appui.run(body, presentation="sheet")

参阅LazyVGridGrid


#Grid

签名

text
Grid(content=None, alignment='center', horizontal_spacing=None, vertical_spacing=None,
     horizontalSpacing=None, verticalSpacing=None)

参数

参数类型说明
contentlist[View] \| None通常由若干 GridRow 组成。
alignmentstr单元格对齐。
horizontal_spacing / vertical_spacing数值 \| None行/列间距。

示例

python
import appui

def body():
    return appui.Grid(
        content=[
            appui.GridRow([appui.Text("A1"), appui.Text("B1")]),
            appui.GridRow([appui.Text("A2"), appui.Text("B2")]),
        ],
        horizontal_spacing=12,
        vertical_spacing=8,
    ).padding()

appui.run(body, presentation="sheet")

参阅GridRowLazyVGrid


#GridRow

签名

text
GridRow(content=None, alignment=None)

参数

参数类型说明
contentlist[View] \| None一行中的单元视图。
alignmentstr \| None行内对齐;None 表示默认。

示例

Grid

参阅GridHStack


#flexible

签名

text
flexible(minimum=10, maximum=None)

参数

参数类型说明
minimum数值轨道最小尺寸。
maximum数值 \| None最大尺寸;None 表示不限制。

示例

python
import appui

row = [appui.flexible(minimum=60), appui.fixed(44)]
print(row[0]["type"], row[1]["type"])

参阅LazyVGridfixed


#fixed

签名

text
fixed(size)

参数

参数类型说明
size数值固定轨道尺寸。

示例

python
import appui

c = appui.fixed(120)
assert c["type"] == "fixed"

参阅LazyVGridadaptive


#adaptive

签名

text
adaptive(minimum=50, maximum=None)

参数

参数类型说明
minimum数值每个自适应单元最小宽度。
maximum数值 \| None可选上限。

示例

python
import appui

cols = [appui.adaptive(minimum=80)]
print(len(cols), cols[0]["type"])

参阅LazyVGridflexible


#grid_item

签名

text
grid_item(type='flexible', minimum=None, maximum=None, count=None)

参数

参数类型说明
typestr轨道类型:'flexible''fixed''adaptive'
minimum数值 \| None轨道最小尺寸。
maximum数值 \| None轨道最大尺寸;None 表示不限制。
countint \| None用于 adaptive 类型时的列数提示。

用途

通用网格轨道描述函数,返回 dict;与 flexiblefixedadaptive 功能等价,适合动态生成列/行描述。

python
import appui

cols = [appui.grid_item('flexible', minimum=60), appui.grid_item('fixed', minimum=44)]
print(cols)