最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429php
本章节为你们讲解GUIX Studio设计窗口切换。框架
14.1初学者重要提示ide
14.2 GUIX Studio建立三个窗口函数
14.3 窗口的Screen Flow界面介绍学习
14.4 窗口的Screen Flow界面设置测试
14.5 移植程序到硬件平台注意事项动画
14.6 实验例程设计框架spa
14.7 实验例程设计
14.8 总结3d
GUIX Studio的设置方法与第11章同样,咱们这里仅把控件的位置和大小作了调整。
建立的窗口1,添加Text Button控件和Prompt控件,而后选中建立的窗口1,再重点看下面截图中标记的三个地方:
设置完了窗口部分,再看按钮控件的配置,鼠标左击选中按钮,重点看Properties View:
设置按钮ID为GUIX_ID_TextButton0,设置Screen Flow时要使用。而prompt控件设置显示内容为:The First Window便可,方便切换不一样窗口时区分。
按照以下方法建立窗口2:
建立后,添加Text Button控件和Prompt控件,而后选中建立的窗口2,一样重点看下面截图中标记的两个地方:
设置完了窗口部分,再看按钮控件的配置,鼠标左击选中按钮,重点看Properties View:
设置按钮ID为GUIX_ID_TextButton1,设置Screen Flow时要使用。而prompt控件设置显示内容为:The Second Window便可,方便切换不一样窗口时区分。
按照以下方法建立窗口3:
建立后,添加Text Button控件和Prompt控件,而后选中建立的窗口3,一样重点看下面截图中标记的两个地方:
设置完了窗口部分,再看按钮控件的配置,鼠标左击选中按钮,重点看Properties View:
设置按钮ID为GUIX_ID_TextButton2,设置Screen Flow时要使用。而prompt控件设置显示内容为:The Third Window便可,方便切换不一样窗口时区分。
建立完毕三个窗口后,开始本章节最重要的Screen Flow设置,窗口的切换主要是经过Screen Flow来配置的:
按照上图方式打开Screen Flow:
能够看到前面建立的窗口window,window_1和window_2都以矩形框的形式呈现,这三个方框能够随意调节位置,随意放缩大小。
这里鼠标左击选中窗口window,而后鼠标右击,弹出以下对话框:
再点击Add New Trigger按钮,弹出以下对话框:
一、System Event
系统事件,支持的系统事件以下:
二、Child Signal
子控件支持的事件以下:
这里的子控件就是前面建立窗口1时添加的Text Button子控件和Prompt子控件。默认都是支持三个事件,CLICKED点击事件,FOCUS_GAINED获取聚焦事件,FOCUS_LOST失去聚焦事件。
三、User Event
用户自定义事件。
这里以建立的第1个窗口的Child Signal事件中Text Button点击事件为例进行说明:
保存后,就能够编辑此按钮按下事件的处理方式:
点击Edit Action(s)按钮,弹出以下对话框:
继续点击Add New Action按钮,弹出的对话框以下:
Animation:窗口切换的动画效果。
Attach:将目标窗口附件到它的父窗口上,若是未指定父窗口,则目标窗口将附加到根窗口。
Detach:将目标窗口与其父窗口分离。
Hide:隐藏目标窗口。
Screen Stack Pop:从内部窗口堆栈弹出一个窗口指针。
Screen Stack Push:将窗口指针推到内部窗口堆栈。
Screen Stack Reset:从内部窗口堆栈中删除全部窗口指针。
Show:显示目标窗口。
Toggle:将目标窗口附加到当前窗口的父窗口,而后将当前窗口与其父窗口分离。
Window Execute:以模态方式执行目标窗口。
Window Execute Stop:退出当前窗口的模态执行。
这里咱们以Animation动画切换效果为例进行说明,选择Animation,点击保存:
保存后弹出以下对话框:
一、这里能够添加多个动做方式进来,当前咱们这里仅添加了Animation一种方式。
二、设置动做名字,随意设置,咱们这里使用默认。
三、设置Animation动做方式应用到的目标窗口或控件。
四、设置目标窗口切换后附加到那个窗口下(即便用那个窗口做为父窗口),或者设置为None的话,会被附加到root根窗口下。
五、设置目标窗口的动做前的起始位置,结束位置等:
起始坐标位置。
结束坐标位置。
从起始位置到结束位置须要的步数。
滴答频率(注,未摸清准确做用,待后续继续测试)
动做前的延迟,延迟单位由GX_SYSTEM_TIMER_TICKS定义。
启动前的Alpha值和启动后的Alpha值,0表示彻底透明,255表示彻底不透明。
六、用于设置窗口切换时,动态切换效果
当前支持的动画效果以下:
点击这个小按钮能够查看动画效果:
七、动画完成后的处理
表示将目标窗口与其父窗口分离。
将目标窗口指针压如到窗口堆栈中。
了解了Screen Flow的基础配置后,将三个窗口都作配置。
右击选择窗口window:
弹出窗口选择Child Signal中的按钮按下事件:
保存后选择Edit Action(s):
点击Edit Action(s)后,弹出以下对话框,并选择Add New Action按钮,再选择Animation并保存。
最终配置以下:
咱们这里仅修改了Target目标窗口,其它地方的设置所有默认不动。这里选择window_1表示操做前面建立的window_1,实际运行效果是由窗口window切换到window_1。
右击选择窗口window_1:
弹出窗口选择Child Signal中的按钮按下事件:
保存后选择Edit Action(s):
点击Edit Action(s)后,弹出以下对话框,并选择Add New Action按钮,再选择Animation并保存。
最终配置以下:
咱们这里仅修改了Target目标窗口,其它地方的设置所有默认不动。这里选择window_2表示操做前面建立的window_2,实际运行效果是由窗口window_1切换到window_2。
右击选择窗口window_2:
弹出窗口选择Child Signal中的按钮按下事件:
保存后选择Edit Action(s):
点击Edit Action(s)后,弹出以下对话框,并选择Add New Action按钮,再选择Animation并保存。
最终配置以下:
咱们这里仅修改了Target目标窗口,其它地方的设置所有默认不动。这里选择window表示操做前面建立的window,实际运行效果就是由窗口window_2切换到window。
三个窗口的Screen Flow配置好以后,能够看到以下效果:
三个窗口已经互联到一块儿,即咱们要实现的功能能够实现三个窗口之间来回切换。至此就彻底了窗口切换的实现。
本教程第12章讲解了移植方法,本章重点注意建立的三个窗口都要单首创建,建立代码放在了MainTask.c文件的MainTask函数里面:
/* ********************************************************************************************************* * 函 数 名: MainTask * 功能说明: GUI主函数 * 形 参: 无 * 返 回 值: 无 ********************************************************************************************************* */ void MainTask(void) { 其它省略未写 /* 建立窗口 */ gx_studio_named_widget_create("window", (GX_WIDGET *)root, (GX_WIDGET **)&pScreen); gx_studio_named_widget_create("window_1", (GX_WIDGET *)root, (GX_WIDGET **)&pScreen); gx_studio_named_widget_create("window_2", (GX_WIDGET *)root, (GX_WIDGET **)&pScreen); }
特别注意,这里window,window_1和window_2就是前面建立三个窗口时所使用的名字。
本章例程的重点是GUIX Studio窗口切换的实现:
(注,若是是电阻屏,须要作触摸校准,校准方法看本教程附件章节A)
配套例子:
本章节配套了以下两个例子供你们移植参考:
GUIX Studio生成的代码在硬件平台实际运行的工程,含有GCC,IAR,MDK AC5和AC6四个版本工程。
GUIX Studio工程模板,设计界面后,生成的文件可直接添加到MDK,IAR和GCC软件平台使用。
实验目的:
实验内容:
App Task Start任务 :启动任务,这里用做BSP驱动包处理。
App Task MspPro任务 :消息处理,这里用做浮点数串口打印。
App Task UserIF任务 :按键消息处理。
App Task GUI任务 :GUI应用任务。
App Task STAT任务 :统计任务。
App Task IDLE任务 :空闲任务。
GUIX System Thread :GUI系统任务。
System Timer Thread任务:系统定时器任务。
实验效果:
一共建立了三个窗口来回切换:
GUIX Studio的界面设计以下:
串口打印任务执行状况:
IAR,MDK AC5和AC6工程能够串口打印任务执行状况:按开发板的按键K1能够打印,波特率 115200,数据位 8,奇偶校验位无,中止位 1:
Embedded Studio(GCC)平台的串口打印是经过其调试组件SEGGER RTT作的串口打印,速度也很是快,打印效果以下:
展现里面有乱码是由于Embedded Studio不支持中文。
本章节主要为你们讲解了GUIX Studio设计窗口切换,涉及到的知识点比较多,须要你们多作测试,观察各类效果。