TouchGFX界面开发 | 按钮控件应用示例

按钮控件应用示例

按钮是最常见的部件之一,有了按钮就可以点击,从而响应事件,达到人机交互的目的。TouchGFX Designer内置了七种按钮部件:

  • 下压按钮:能够在被释放时发送回调,按下和释放状态都关联了图像
  • 标签按钮:能够在被释放时发送回调,按下和释放状态都关联了图像和文本
  • 图标按钮:能够在被释放时发送回调,按下和释放状态都关联了图像和图标
  • 开关按钮:能够在被点击时发送回调,在被点击时会掉换两张位图,以模仿两种状态之间的切换
  • 单选按钮:能够在被点击时发送回调,其包含四幅图像,对应于按下或释放状态下的选中或未选中按钮
  • 重复按钮:能够在被点击时发送回调,按钮立即激活其按下操作,然后在给定延迟后激活,然后在某个时间间隔后重复激活
  • 灵活按钮:能够在被点击时发送回调,可包含最多4个视觉元素:BoxWithBorder、Icon、Text和Image

本文以下压按钮(Button)为例,介绍TouchGFX按钮控件的使用(其余按钮使用方法类似),将实现如下视频中的效果:

本文示例基于于STM32F429IGT6 + RGB (800 * 480)硬件平台,提前移植好了TouchGFX,并添加了触摸驱动。详细可参考 使用STM32CubeMX移植TouchGFX 和 添加触摸屏驱动 这两篇文章的介绍

一、TouchGFX Designer界面布局

打开Keil工程中,TouchGFX文件夹里的TouchGFX Designer软件

  • 添加图片资源

TouchGFX界面开发 | 按钮控件应用示例_第1张图片

  • 主界面中添加背景图、计数器背景图、添加两个按钮并配置按压显示图片

TouchGFX界面开发 | 按钮控件应用示例_第2张图片

  • 添加文本区域控件,用来显示数字;可以为动态文本输入创建两个通配符,表示为< tag >,其中‘tag’可以是任意字符串,这里创建了一个通配符 < d >,通配符设置里可以配置初始值

TouchGFX界面开发 | 按钮控件应用示例_第3张图片
TouchGFX界面开发 | 按钮控件应用示例_第4张图片

  • 若要显示负数,需要在Text选项下设置字体参数,添加通配符号“-”和通配符范围,否则负号和数字不能显示

TouchGFX界面开发 | 按钮控件应用示例_第5张图片
TouchGFX界面开发 | 按钮控件应用示例_第6张图片

  • 添加交互动作:对两个按钮添加交互动作,按钮被点击时,调用虚函数

TouchGFX界面开发 | 按钮控件应用示例_第7张图片

  • 点击Generate Code生成TouchGFX代码

二、MKD-ARM Keil中添加用户代码

TouchGFX生成代码后,两个按钮点击时调用的虚函数会自动生成,并位于类MainScreenViewBase的公共部分。但是生成的方法具有空实现,需要我们自已重写。
TouchGFX界面开发 | 按钮控件应用示例_第8张图片

  • 在MainScreenView.hpp头文件中增加虚方法声明,并定义一个变量用于计数
class MainScreenView : public MainScreenViewBase
{
public:
    MainScreenView();
    virtual ~MainScreenView() {}
    virtual void setupScreen();
    virtual void tearDownScreen();
	virtual void increaseValue(); 	//添加虚方法声明
	virtual void decreaseValue();	//添加虚方法声明
protected:
	int8_t count;	//定义变量用于计数		
};

TouchGFX界面开发 | 按钮控件应用示例_第9张图片

  • 在MainScreenView.cpp中实现虚方法
void MainScreenView::increaseValue()
{
	count++;
	Unicode::snprintf(countTxtBuffer,COUNTTXT_SIZE,"%d",count);
	countTxt.invalidate();

}

void MainScreenView::decreaseValue()
{
	count--;
	Unicode::snprintf(countTxtBuffer,COUNTTXT_SIZE,"%d",count);
	countTxt.invalidate();
}

TouchGFX界面开发 | 按钮控件应用示例_第10张图片

三、下载测试

编译无误后,下载到开发板中,点击按钮可以进行计数值的增加或减少

你可能感兴趣的:(#,TouchGFX,开发语言,c++,stm32,单片机,嵌入式硬件,TouchGFX)