Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
柿饼_PersimmonUI
柿饼_PersimmonUI
柿饼_PersimmonUI
【12月原创】柿饼UI作业(一)——范进中举
发布于 2020-12-29 15:39:04 浏览:828
订阅该版
[tocm] # Persimmon UI作业(一)——范进中举(1) ## 概述 介绍: > Persimmon 是一套运行在RT-Thread嵌入式实时操作系统上的图形用户组件界面,用于提供图形界面的用户交互。 > 它采用C++语言编写,基于C语言实现的底层图形像素引擎,为上层应用提供了控件、窗口、signal/slot,手势动画等机制。 为了提高UI的开发灵活性、降低用户开发时间和成本,Persimmon 提供了所见即所得的UI设计器。用户可通过设计器轻松实现UI界面设计,并利用JavaScript脚本实现对界面逻辑的控制。 ![柿饼派](https://oss-club.rt-thread.org/uploads/20220714/6ecba7e1a18a06e9529b0356e1fcf92c276a2981.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjEwNDMw,size_16,color_FFFFFF,t_70) 柿饼UI为我们提供了丰富的UI控件,例如Button,label,ProgressBar...等等,拖拽式设计UI布局可以让开发者更加快速的投入到设计中。它很类似Android的UI可以通过拖拽式进行布局,但又不同于Android,因为柿饼UI使用JS脚本语言进行编程,这对于有微信小程序,web前端经验的开发者而言,可以更加快速的上手柿饼UI。 ![控件](https://oss-club.rt-thread.org/uploads/20220714/88b69d8d332d8161b28678e2f0d978bf62384336.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjEwNDMw,size_16,color_FFFFFF,t_70) --- 代码已经放到了我的 [Gitee](https://gitee.com/Rbb996/persimmon-ui-operation)上面了,需要的小伙伴可以自己去下载,欢迎交流。 --- 视频地址:[bilibili](https://www.bilibili.com/video/BV1dA411x7LC/) ## 作业题目 直接上图: --- ![范进中举](https://oss-club.rt-thread.org/uploads/20220714/11cc82979a8f1e76810b103cfab705054a21270f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjEwNDMw,size_16,color_FFFFFF,t_70) 作业要求:作业可以在设计器模拟器内完成,也可以在柿饼派内完成。最终提交的作业是功能完成的设计器工程文件。 ## 作业思路 说一下大体的思路吧: * 1.范进中举:通过MultiTextBox控件,该控件可以显示多行文本,所以最简单的方式当然就是直接将文本copy到控件文本中了。 * ![范进中举](https://oss-club.rt-thread.org/uploads/20220714/a12ba6a952213d0a01188147fd20176341918d9e.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjEwNDMw,size_16,color_FFFFFF,t_70) * 2.电子相册:将整个page中设置一个card卡片控件,通过在card中设置imagebox,从而达到轮播图效果。 * ![电子相册](https://oss-club.rt-thread.org/uploads/20220714/23e5b5193b31e5b3f2052944683a72ca18238a72.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjEwNDMw,size_16,color_FFFFFF,t_70) * 3.电子计时器:通过clock,button,progressbar控件实现。 * ![电子计时器](https://oss-club.rt-thread.org/uploads/20220714/02ee56abc0106a9ab3b845e6f7d033b6ffbecff8.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjEwNDMw,size_16,color_FFFFFF,t_70) >页面切换时card变化显示的JS代码: ```javascript card_change: function (event) { console.dir(event) if ("change" == event.type) { switch (event.detail.value) { case 0: this.setData({ btn_title: { norImg: 'book_of.png' } }); this.setData({ btn_photo: { norImg: 'photo_on.png' } }); this.setData({ btn_my: { norImg: 'alarm_on.png' } }); break; case 1: this.setData({ btn_title: { norImg: 'book_on.png' } }); this.setData({ btn_photo: { norImg: 'photo_of.png' } }); this.setData({ btn_my: { norImg: 'alarm_on.png' } }); break; case 2: this.setData({ btn_title: { norImg: 'book_on.png' } }); this.setData({ btn_photo: { norImg: 'photo_on.png' } }); this.setData({ btn_my: { norImg: 'alarm_off.png' } }); break; } } }, ``` > 页面切换时,button图片切换JS代码: ```javascript onclick: function (event) { var that = this; switch (event.target.id) { case "btn_title": console.log('btn_1') this.setData({ main_card: 0 }); this.setData({ btn_title: { norImg: 'book_of.png' } }); this.setData({ btn_photo: { norImg: 'photo_on.png' } }); this.setData({ btn_my: { norImg: 'alarm_on.png' } }); break; case "btn_photo": console.log('btn_2') this.setData({ main_card: 1 }); this.setData({ btn_title: { norImg: 'book_on.png' } }); this.setData({ btn_photo: { norImg: 'photo_of.png' } }); this.setData({ btn_my: { norImg: 'alarm_on.png' } }); break; case "btn_my": console.log('btn_3') this.setData({ main_card: 2 }); this.setData({ btn_title: { norImg: 'book_on.png' } }); this.setData({ btn_photo: { norImg: 'photo_on.png' } }); this.setData({ btn_my: { norImg: 'alarm_off.png' } }); break; case "btn_stime": console.log('btn_stime') that.timer = setInterval(function () { that.setData({ Clock1: { value: that.time } }); that.time++; if (that.time > 60) { /*更新完成的文本提示,清除定时器*/ that.setData({ label1: { value: "Time's up !!!" } }); } else { /*更新progressbar的进度和label的显示文本*/ that.setData({ label1: { value: "Time: " + that.time + "%" } }); that.setData({ progressbar1: { value: that.time } }); that.progress++; } }, 1000) break; case "btn_sptime": console.log('btn_sptime') clearInterval(that.timer); break; case "btn_retime": console.log('btn_retime') that.time = 0 that.setData({ Clock1: { value: that.time } }); that.setData({ label1: { value: "Time: " + that.time + "%" } }); that.setData({ progressbar1: { value: that.time } }); break; } }, ``` >clock控件样式设置JS代码: ```javascript this.setData({ Clock1: { hour: { x: 7, y: 53 }, minute: { x: 5, y: 64 }, second: { x: 3, y: 77 }, } }) ``` --- 大体上的需求就是这么些,这次作业让我对更多的控件使用有了深刻的认识,尤其clock控件,未来再制作电子手表是不是可以使用上了呢?
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Rb君
这家伙很懒,什么也没写!
文章
23
回答
107
被采纳
11
关注TA
发私信
相关文章
1
【PersimmonUI柿饼学习营】+ A Byte of China + 环境搭建&20W年薪广告
2
【柿饼学习营】+werrysuzhen+20W年薪作业
3
【PersimmonUI柿饼学习营】+ meetwit + 20W年薪广告&lesson01
4
【PersimmonUI柿饼学习营】+ DaZhou + 20W年薪作业+视频有彩蛋
5
【PersimmonUI柿饼学习营】+ DMY+ lesson01 20W年薪广告
6
【PersimmonUI柿饼学习营】+ Bigmagic+20W年薪广告&day01
7
【PersimmonUI柿饼学习营】+ chowguohua+年薪广告
8
【柿饼学习营】+werrysuzhen+脚本及事件学习
9
【PersimmonUI柿饼学习营】+ DaZhou+ 手把手教你做计算器
10
【PersimmonUI柿饼学习营】+ A Byte of China + 2048游戏
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
3
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部