ST意法半导体
登录
直播中
贾永世
8年用户
1901经验值
私信
关注
[问答]
求助,有没有办法在按下按钮而不是释放按钮时触发按钮?
开启该帖子的消息推送
按钮
我构建了一个打开 LED 灯的简单项目。我希望在按下按钮时触发事件,而不是在按下并释放按钮时触发。代码中是否有一个地方可以通过简单的更改来实现这一点?
回帖
(1)
张百玲
2023-1-4 09:40:43
幸运的是,您拥有框架中按钮的源代码。“普通”按钮(发布时触发)继承的类称为抽象按钮。正如您从源代码中看到的那样,它在发布时触发。
#include
namespace touchgfx
{
void AbstractButton::handleClickEvent(const ClickEvent& event)
{
bool wasPressed = pressed;
pressed = (event.getType() == ClickEvent::PRESSED);
if ((pressed && !wasPressed) || (!pressed && wasPressed))
{
// Pressed state changed, so invalidate
invalidate();
}
if (wasPressed && (event.getType() == ClickEvent::RELEASED) && action)
{
// This is a click. Fire callback.
if (action->isValid())
{
action->execute(*this);
}
}
}
} //namespace touchgfx
您可以创建自己的 Button 基类来执行其他操作。在某种程度上,您可以说 AbstractButton 可以称为 TriggerOnReleasedButton,或类似的名称。
下面是新的 TriggerOnPressedButton 基类的一些伪代码。
#include
void TriggerOnPressedButton::handleClickEvent(const ClickEvent& event)
{
...
if ( (event.getType() == ClickEvent::PRESSED) && action)
{
// ButtonPress. Fire callback.
if (action->isValid())
{
action->execute(*this);
}
}
...
}
幸运的是,您拥有框架中按钮的源代码。“普通”按钮(发布时触发)继承的类称为抽象按钮。正如您从源代码中看到的那样,它在发布时触发。
#include
namespace touchgfx
{
void AbstractButton::handleClickEvent(const ClickEvent& event)
{
bool wasPressed = pressed;
pressed = (event.getType() == ClickEvent::PRESSED);
if ((pressed && !wasPressed) || (!pressed && wasPressed))
{
// Pressed state changed, so invalidate
invalidate();
}
if (wasPressed && (event.getType() == ClickEvent::RELEASED) && action)
{
// This is a click. Fire callback.
if (action->isValid())
{
action->execute(*this);
}
}
}
} //namespace touchgfx
您可以创建自己的 Button 基类来执行其他操作。在某种程度上,您可以说 AbstractButton 可以称为 TriggerOnReleasedButton,或类似的名称。
下面是新的 TriggerOnPressedButton 基类的一些伪代码。
#include
void TriggerOnPressedButton::handleClickEvent(const ClickEvent& event)
{
...
if ( (event.getType() == ClickEvent::PRESSED) && action)
{
// ButtonPress. Fire callback.
if (action->isValid())
{
action->execute(*this);
}
}
...
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
按钮
有没有办法
找出触摸
按钮
时的X和Y坐标呢?
2022-12-26
332
按钮
问题
2020-03-11
1789
点击uCGUI的
按钮
2019-05-27
2650
如何按
下
按钮
时使引导加载程序等待命令?
2019-11-06
2427
怎样才能让
触发
器
按钮
点击和
按钮
取消点击?
2023-02-03
251
labview 计时 如何计按住
按钮
的时间
2016-12-04
9158
是否可以使用TouchGFX在触摸屏上创建一个瞬时
按钮
呢?
2022-12-23
409
单选
按钮
如何数据绑定?
2017-12-25
5708
按钮
默认是灰色的,鼠标点击后,不会自动复位,一直显示黄色。 怎么破求解答?
2018-04-20
7233
按钮
按
下
后不弹回来???急急急
2014-12-21
6663
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分