Skip to content

NE 合集 06 · 日期与时间:预约时间登记台 ​

《LingBuilder new_emoji 合集》第 6 集(选择类第二集)。一次学会 5 种「日期时间」控件:DatePicker 日期选择、TimePicker 时间选择、DateTimePicker 日期时间、TimeSelect 时间下拉、Calendar 日历——做一个「预约时间登记台」。这一集还能学到 NE 弹层控件的事件触发节奏。全程约 35 分钟。

前置要求:完成第 01 集(启用模块、切设计后端、F5 全流程)。本集源码包见文末。

这一集你将学会 ​

  • DatePicker:year/month/selectedDay 设初值,弹层选年月日
  • TimePicker:hour/minute 设初值,弹层拨时分
  • DateTimePicker:日期+时间一个弹层搞定
  • TimeSelect:minTime/maxTime/stepMinutes 只给固定时段的下拉
  • Calendar:常驻日历面板,year/month/selectedDay 高亮某天
  • 选择变化(SelectionChanged)事件:五个控件同名事件,但触发时机有讲究(本集最重要的红线)

先看一眼本集成品——日期选择、时间选择、日期时间选择一屏摆齐:

成品预览

1. 命令与事件预告 ​

命令 / 事件作用
控件_设置文本(控件名, 文本)写状态播报
选择变化 事件五个控件共用:弹层控件在点开弹层瞬间触发,日历在点中日期时触发

本集只需要 new_emoji 模块,没有额外模块。

2. 新建项目 + 启用模块 + 切后端 ​

流程和第 1 集完全一样,项目名称填 预约时间登记台:

欢迎页

选择项目类型

填写项目名

进入工作台

模块面板搜「原生界面」→ 启用「new_emoji 原生界面库」(首次弹登录框,登录一次即可):

搜索并启用

登录

已启用

界面设计 → 选中窗口 → 「设计后端」切为「new_emoji 模块」:

切换设计后端

工具箱

3. 设计界面 ​

窗口 900×620。左边四个弹层控件,右边状态屏 + 一块常驻日历:

控件名称显示内容左距顶距宽度高度关键属性
文本 Text标题文本📅 预约时间登记台322462036字号 21,粗体
文本 Text副标题文本DatePicker · TimePicker · DateTimePicker · TimeSelect · Calendar——5 种日期时间控件326678024字号 13,#94A3B8
分割线 Divider标题分割线🗓️ 五种日期时间控件3210083628—
文本 Text日期标签① DatePicker 日期选择:弹层选年月日5214034022字号 12,#94A3B8
日期选择 DatePicker日期选择(清空)5216633042year=2026,month=10,selectedDay=15
文本 Text时间标签② TimePicker 时间选择:弹层选时分5222234022字号 12,#94A3B8
时间选择 TimePicker时间选择(清空)5224833042hour=9,minute=30
文本 Text日期时间标签③ DateTimePicker 日期时间:一起来5230434022字号 12,#94A3B8
日期时间 DateTimePicker日期时间(清空)5233033042year=2026,month=10,day=20,hour=14,minute=30
文本 Text时段标签④ TimeSelect 时间下拉:只给固定时段5238634022字号 12,#94A3B8
时间下拉 TimeSelect时段选择(清空)5241233042minTime=480,maxTime=1080,stepMinutes=30(08:00~18:00 每半小时一档)
文本 Text状态文本📅 欢迎来到预约时间登记台。改任何一个时间,这里都会记下来。560140308140字号 14,#7DD3FC,自动换行
日历 Calendar日历(清空)554292320270year=2026,month=10,selectedDay=20
文本 Text红线说明💡 弹层控件的事件在点开瞬间触发;日历点中才触发。55455632036字号 12,#94A3B8,自动换行

事件绑定:五个控件各绑「选择变化」事件,处理器名统一 _控件名_选择变化。

摆完的画布:

设计器全景

本集最重要的红线:弹层控件的「选择变化」在点开弹层那一刻就触发(DatePicker/TimePicker/DateTimePicker/TimeSelect 都是),不是选中某项才触发;日历 Calendar 是常驻面板,点中某个日期才触发。所以处理器里适合做「播报」和「联动刷新」,别指望在这里读「刚选中的值」——选中的结果直接显示在控件自己的框里。

第二个红线:有时间初值的控件,「显示内容」同样要清空,否则占位文本和值叠画(第 05 集讲过的坑,日期时间控件一样中招)。

4. 写代码 ​

lcpp
类 MainWindow
    事件 _MainWindow_创建完毕()
        控件_设置文本(状态文本, "📅 欢迎来到预约时间登记台。改任何一个时间,这里都会记下来。")
        调试输出("预约时间登记台已创建完毕")
    结束

    事件 _日期选择_选择变化()
        控件_设置文本(状态文本, "📅 日期弹层打开了——选中的日期显示在日期框里。")
    结束

    事件 _时间选择_选择变化()
        控件_设置文本(状态文本, "⏰ 时间弹层打开了——拨到想要的时分。")
    结束

    事件 _日期时间_选择变化()
        控件_设置文本(状态文本, "🕒 日期时间弹层打开了——一次定完日期和时分。")
    结束

    事件 _时段选择_选择变化()
        控件_设置文本(状态文本, "🕐 时段下拉打开了——列表里只有 08:00~18:00 的半点档。")
    结束

    事件 _日历_选择变化()
        控件_设置文本(状态文本, "🗓️ 日历:点中的日期已经高亮,右侧登记完成。")
    结束
结束类

看点:五个处理器是同一个节奏——一句 控件_设置文本 播报「发生了什么」。日期控件的选中值就在控件框里,界面自己会说话,处理器只负责旁白。

代码截图

代码截图

5. 编译前先看错误列表 ​

点「编译当前项目」,先看底部错误列表——零报错再继续:

错误列表零报错

6. 运行!把五个控件都摸一遍 ​

点「运行」。初始状态:日期 2026-10-15、时间 00:00、日期时间 2026-10-20 14:30、时段 09:30、日历停在 2026-10 并高亮 20 日:

运行窗口

点开日期选择——整月日历弹层,底部还有「📍 今天」和「清空」两个快捷键:

打开日期弹层

注意:状态屏此刻已经播报「日期弹层打开了」——这就是红线说的「点开瞬间触发」。点 22 号,弹层收起,日期框变成 2026-10-22:

改日期

最后两连:点开时段下拉(里面只有 08:00~18:00 的半点档),再点日历的 26——日历高亮切到 26 日,状态屏播报日历事件(日历是点中才触发的):

时段与日历

五种日期时间控件、一个事件、一套播报写法,全部打通。

7. 导出源码包 ​

命令面板执行「项目:一键导出 LCPP 源码包」即可。

本集源码包 ​

  • 本集源码包已上架官网「示例源码」区,按名称「NE合集06-日期与时间:预约时间登记台」即可下载(每集一个 .lcpppkg,配套预览图与图文教程直链)。
  • 导入:LingBuilder 欢迎页 →「导入源码包」,选中 .lcpppkg 一键还原整个项目(含窗口设计与全部源码)。
  • new_emoji 原生界面库为收费模块:导入后如未启用,在模块面板启用并用 LingBuilder 账号登录授权即可(和制作时是同一个账号体系,授权一次全合集通用)。

下一集预告 ​

选择类收官:「特殊输入」——InputTag 标签输入/Mentions 提及/Upload 上传/ColorPicker 颜色选择器。