page函数用于设置本页面的基本属性,包括将页面划分成的行、列数,此页中text和data控件的默认属性。代码格式上page函数和with联合使用用于分隔页面之间的代码。
每一个APP最多支持256个页面
id="page1" 或 id=1。first=id,id为此页面中可捕获焦点的控件id上一页按键跳转到相应id的页面。格式为 prev=id下一页按键跳转到相应id的页面。格式为 next=idfirst="id",id为此页面中可捕获焦点的控件id上一页按键跳转到相应id的页面。格式为 prev="id"下一页按键跳转到相应id的页面。格式为 next="id"first/prev/next为V2.1新增参数,bg_color为3.0新增
APP采用矩阵布局的形式,可以在page函数将页面划分成指定的行数和列数。下图将页面根据当前所设计的分辨率划分行和列,也可以自行划分行和列,通过分辨率划分行列可以对页面进行精细化设计。
使用viewport_size()函数获取当前可以控制的屏幕分辨率大小,并可以使用viewport_size()函数将该页面按分辨率进行划分行列,即1个像素代表1行,1列代表1列。 viewport_size()函数返回的数值与set_size()函数设置的数据有关,参见 页面布局尺寸

# coding: utf-8
from knd_ui import *
# 设置此APP的uuid,不同的APP此uuid必须不同
set_uuid('j6Hr5QQXmxs3yLELrKL7Qq_076d')
# 设置使用此APP的系统软件版本
sys_version("V7.1.00c_68728")
# 系统分辨率为800*600,显示标题,显示菜单
set_size(800, 600, title=False)
# 此APP的快捷入口:位置界面
shortcut_id(位置)
# 此APP根目录菜单名称为"简单示例"
set_name("简单示例")
# 此APP的目录名称为"示例目录",在位置的应用界面下查看
set_category("示例目录")
# 此APP的默认显示页面的id为"main"
set_default_page("main")
# 按像素划分当前页面的行数,根据set_size()设置的数据自动计算
rows = viewport_size().height
# 按像素划分当前页面的列数,根据set_size()设置的数据自动计算
cols = viewport_size().width
# 此页的id为"main",共有10行,5列,text为此页text控件设定了默认属性,bg_color为此页的背景色
with page(rows, cols, id="main", text=(白色, f20x10, 居中), bg_color=(24, 24, 24)):
text("", (1, 1, 100, 100), border_visible=1, border_color=白色)
text("位置:100行100列\n大小:50行200列", (100, 100, 50, 200), border_visible=1, border_color=红色)
text(f"当前页面的行和列:{rows}×{cols}", (rows/2-25, 1, 50, cols))
text("位置:406行600列\n大小:50行200列", (406, 600, 50, 200), border_visible=1, border_color=红色)
menu("首页", "main")
# 在当前目录下新建_output文件夹,生成kui文件
generate(__file__)
单个APP可以包含多个页面,page函数和with联合使用用于分隔页面之间的代码。同时使用menu_from()函数,将菜单按键从指定页面中复制过来。
with page(456, 800, id="page1", text=(白色, f20x10, 居中), bg_color=(24, 24, 24)):
text(f"当前页面为:第一页", (rows/2-25, 1, 50, cols))
menu("第一页", "page1")
menu("第二页", "page2")
with page(456, 800, id="page2", text=(白色, f20x10, 居中), bg_color=(24, 24, 24)):
text(f"当前页面为:第二页", (rows/2-25, 1, 50, cols))
menu_from("page1") # 该页面的菜单按键来自于id为page1的页面