QT的pushbutton如何实现一个按键两种状态的切换

非常简单,加个标志位就可以了。

一看到状态切换,首先就想到用标志位。

首先在.cpp的全局定义一个标志位变量,我这里用的是flag。

然后在槽函数里,用switch语句,本来想的是用flag自增,通过if语句判断单双数来完成,但是这样一来的话会造成点多了flag会一直增加,数变的很大的时候可能出问题,而再加个清除也行,但是又多了几行代码,效率最重要。想到清除后,就想到了自增后再自减,然后试验后发现可行,就这么几行代码就完成了。

这样就实现了。

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于Arduino的LCD12864显示菜单和按键选择多种功能的代码示例: ``` #include <LiquidCrystal.h> // 导入LCD库 #include <MenuBackend.h> // 导入菜单库 // 初始化LCD引脚 LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // 定义菜单项和功能 MenuBackend::MenuItem menuItems[] = { {"Option 1", []() { /* 这里写Option 1的功能代码 */ }}, {"Option 2", []() { /* 这里写Option 2的功能代码 */ }}, {"Option 3", []() { /* 这里写Option 3的功能代码 */ }} }; // 初始化菜单 MenuBackend::Menu menu("Main Menu", menuItems, 3); void setup() { // 初始化LCD lcd.begin(16, 2); // 在LCD上显示菜单名称 lcd.print("Main Menu"); // 等待一段时间,让用户有时间看到菜单名称 delay(2000); } void loop() { // 清空LCD显示 lcd.clear(); // 在LCD上显示当前菜单项 lcd.print(menu.getCurrent()->name); // 等待用户按下按键 while (!digitalRead(2)) { delay(50); } // 根据按键的类型更新菜单 if (digitalRead(3)) { menu.moveUp(); } else if (digitalRead(4)) { menu.moveDown(); } else if (digitalRead(5)) { menu.select(); } } ``` 在这个示例中,我们使用了LiquidCrystal库来控制LCD屏幕,并使用了MenuBackend库来管理菜单和功能。我们定义了三个菜单项,并在setup()函数中初始化了菜单并在LCD上显示了菜单名称。在loop()函数中,我们不断地更新LCD显示当前菜单项,并等待用户按下按键来更新菜单。根据按键的类型,我们调用不同的MenuBackend函数来移动菜单项或选择菜单项执行对应的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值