TouchGFX使用教程(三)

TouchGFX界面定制与事件处理
本文介绍TouchGFX的界面事件处理、控件修改与自定义方法,包括使用Container容器、重载控件及自定义控件的步骤,同时讲解了资源放置位置。

界面事件

之前和大家共享了一些基本的操作,这章会给大家共享下界面使用的一些小技巧及方法。
除去现成控件的事件外,不知道大家有没有考虑过其他一些界面的实现方式,例如,类似手机下滑菜单,或者上滑菜单,再比如一个动态背景。或者自己做的地图的量算尺子。
这些方法都涉及到界面的滑动事件或者界面的定时刷新事件又或者点击事件之类。TouchGFX给大家提供了UIEventListener类用于事件监听。
此类为用户界面事件(即由用户与设备交互生成的事件)声明处理程序接口。除系统计时器刻度外,所有其他与用户界面设备外围设备(显示器,按键等)无关的其他系统事件均不属于该界面。
下方是类中函数的介绍。

函数名 介绍
virtual void handleClickEvent(const ClickEvent & event) 系统检测到鼠标单击或显示触摸事件时,将调用此处理程序。
virtual void handleDragEvent(const DragEvent & event) 当系统检测到拖动事件时,将调用此处理程序。
virtual void handleGestureEvent(const GestureEvent & event) 当系统检测到手势事件时,将调用此处理程序。
virtual void handleKeyEvent(uint8_t c) 当系统检测到按键(或按钮)事件时,将调用此处理程序。
virtual void handlePendingScreenTransition() 当更改屏幕事件挂起时,将调用此处理程序。
virtual void handleTickEvent() 生成系统滴答事件后将调用此处理程序。(该事件代表着屏幕每刷新一次 则会调用一次该处理程序)

UIEventListener类在我们创建窗口界面时该类已经继承过来了,实际上在view类中并没有这些方法的实现,所以需要自己根据需要实现方法。
之后会给大家展示例子。

如意控件

上面介绍了界面事件类,现在介绍修改控件的方法以及如何自定义控件,在正常的开发中,TouchGFX Designer提供的控件经常满足不了我们的需求,此时就需要动态的修改控件,或者自己定义控件。首先先介绍动态的修改控件。
还记得第二章讲到的Base类吗,其中有个add()函数,该函数的作用是在窗口上添加一个控件,这就是修改的一种,除此之外,还可以使用控件自身的属性进行更改,例如换图片,移动,渐变,更改文字,具体的需要根据控件的API进行开发。但是需要注意的是控件更改后为了保证可以及时刷新,需要使用invalidate()函数。

Container

Container容器,容器这个控件可以说在TouchGFX里使用量最大的控件,容器可以理解为一个透明的窗口,可以将其他控件放到容器里,再将容器作为单独控件放到窗口中,由此可以实现多个界面切换,或者也可以在容器中添加动画,或者事件监听。
添加位置:
可以在TouchGFX Designer的“容器”小部件组中找到“容器”。
在这里插入图片描述您可以在用户代码中使用这些函数以及Container类中可用的其他函数。container1.invalidate()如果更改小部件的外观,请记住要通过调用来强制重绘。

重载容器

该方法是将容器重载,在容器中创建自己了的逻辑,并且将子控件加入容器之中,针对自己的需要编写对外的接口。
下面看一个例子。

#ifndef SLIDEMENU_CONTAINER_HPP
#define SLIDEMENU_CONTAINER_HPP

#include <touchgfx/containers/Container.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/containers/ListLayout.hpp>

using namespace touchgfx;

class SlideMenuContainer : public touchgfx::Container 继承容器
{
   
   
public:
	SlideMenuContainer(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值