阐述

本文旨在说明实现的思路。
当窗口创建很多QPushButton或者QPushButton的子类的时候,若要实现在众多的按钮中,每次被点击的按钮被选中,下一次点击另一个按钮的时候,上一个被选中的按钮恢复被选中之前的颜色,可以使用下面这种实现。

思路

分4步:
1.创建按钮的时候,设置按钮可选中,使用函数setCheckable;
2.创建按钮的时候,将所有创建的按钮保存在一个容器中;
3.绑定按钮的点击信号与处理点击的槽函数;
4.定义类的全局变量,QPushButton*类型的指针,或者自定义的继承于QPushButton的按钮的指针,用来指向上一次被选中的按钮对象,构造函数中初始化该指针为nullptr,在按钮点击信号绑定的槽函数中,判断该指针是否为空,不为空时,将该指针所指向的对象设置为非选中,(即将上一次被选中的按钮设置为为选中),然后更新当前被选中的按钮为上一次选中的按钮。
大体实习如下:

//按钮可选中,选中下一个前将之前的先设置为未选中if (m_beforeCheckedBtn) {m_beforeCheckedBtn->setChecked(false);}saveBeforeBtnCheckedBtn();

上述代码中的函数的实现如下:

void saveBeforeBtnCheckedBtn()
{QMap<int,myButton*>::iterator it;for (it = m_idBtnMap.begin(); it != m_idBtnMap.end(); ++it) {if (it.value()->isChecked()) {myButton* temp = it.value();m_beforeCheckedBtn = temp;break;}}
}

上述代码只是部分,重在理解其大意。

记录一种多个按钮中每次只能选中一个的实现方式相关推荐

  1. 【操作系统】某寺庙,住着一个老和尚和若干小和尚,有一个水缸,由小和尚提水入缸供老和尚饮用。水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水,水桶总数为3个。每次往水缸中倒

    题目 某寺庙,住着一个老和尚和若干小和尚,有一个水缸,由小和尚提水入缸供老和尚饮用.水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水,水桶总数为3个.每次往水缸中倒水与从 ...

  2. 某寺庙,有小和尚、老和尚若干。有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。水缸可容30桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为5个。每次入、取缸水仅为

    和尚取水问题 某寺庙,有小和尚.老和尚若干.有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用.水缸可容30桶水,水取自同一井中.水井径窄,每次只能容一个水桶取水.水桶总数为5个.每次 ...

  3. 给定一个由n个圆盘组成的塔,这些圆盘按照大小递减的方式套在第一根桩柱上。现要将整个塔移动到另一根桩柱上,每次只能移动一个圆盘,且较大的圆盘在移动过程中不能放置在较小的圆盘上面

    对汉诺塔问题详解,给定一个由n个圆盘组成的塔,这些圆盘按照大小递减的方式套在第一根桩柱上.现要将整个塔移动到另一根桩柱上,每次只能移动一个圆盘,且较大的圆盘在移动过程中不能放置在较小的圆盘上面: 输入 ...

  4. 一、汉诺塔问题 汉诺塔是由三根杆子A,B,C组成的。A杆上有n个(n>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。提示:可将圆

    一.汉诺塔问题 汉诺塔是由三根杆子A,B,C组成的.A杆上有n个(n>1)穿孔圆盘,盘的尺寸由下到上依次变小.要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘:大盘不能叠在小盘上面.提示: ...

  5. 一个java源文件允许_一个Java源文件中最多只能有一个class定义

    一个Java源文件中最多只能有一个class定义 答:× 确诊甲状腺功能紊乱的常规指标是 答:FT3和FT4 I will not let my children in that way. 答:be ...

  6. 使用嵌套循环,打印四行五列星星矩形(每次只能打印一个*)

    使用嵌套循环,打印四行五列星星矩形(每次只能打印一个*) ***** ***** ***** ***** 提示:打印不换行,使用 print 方法,不要加 ln 分析: 把*****看成一个整体 字符 ...

  7. 打印机顺序打印问题(一台打印机有若干个任务,但是打印机每次只能打印一个任务,每个任务是有优先级的,从1到9)

    一台打印机有若干个任务,但是打印机每次只能打印一个任务,每个任务是有优先级的,从1到9.打印的时候从序列的第一个开始,如果第一个的 优先级不是最大的,则将其出队,并加入队尾.若其优先级是最大的,则直接 ...

  8. 51单片机主函数实现P1口120ms间隔从P1.7口向右循环进行流水灯每次只能亮一个,进入外部中断是进行120ms的延时灯的亮灭各一次

    51单片机主函数实现P1口120ms间隔从P1.7口向右循环进行流水灯每次只能亮一个,进入外部中断是进行120ms的延时灯的亮灭各一次 #include <reg51.h> #includ ...

  9. b树删除节点每次只能删一个吗_深入理解数据库系统之存储存引擎(B树)

    二叉搜索树不适合应用到磁盘上,因为它的扇出数较低并且平衡时需要大量的节点重定位和指针更新.B树通过增加每个节点存储项的数量(高扇出)和减少频繁的平衡操作来解决这些问题.下面我们将讨论了B树的内部结构, ...

最新文章

  1. Linux打印介绍【转贴】
  2. Webservice接口
  3. SAP License:SAP RKE_HZSTMP标准时间转EXCEL日期方法
  4. MySQL复习值代码知识点(1)
  5. 祝福 Stephan Ewen,Apache Flink 将继续前行 !
  6. c++ STL模板(一)
  7. de4dot构建过程
  8. 必须安装三星系列android系统智能手机usb驱动程序,三星usb手机驱动
  9. ps4手柄 android,ps4手柄配对手机,PS4手柄怎么连接安卓手机,求
  10. 今日头条推荐算法研究
  11. 电源检测工具OCCT v10.1.6
  12. Python中的数据序列(元组、集合、字典)
  13. C++ Error C2280 尝试引用已删除的函数
  14. Python函数式编程(fn)
  15. ubuntu和windows之间实现复制粘贴
  16. Telegram图文详解-- 编程机器人(谷歌脚本服务)
  17. 第四十天 阿乐在其中—Android小游戏的飞机(四)加入敌人
  18. Shell脚本发送邮件(CentOS+mailx+QQ邮箱)
  19. 2021年塔式起重机司机考试及塔式起重机司机复审考试
  20. oracle 安装之后

热门文章

  1. 人工智能如何提升大数据存储与管理效率?
  2. 一篇小文带你走进RabbitMQ的世界
  3. 流批一体机器学习算法平台
  4. MaxCompute中如何使用OSS外部表读取JSON数据?
  5. 时延敏感业务低概率超时问题分析
  6. 阿里开源首个深度学习框架 X-Deep Learning!
  7. 奥运转播加速上云,北京冬奥组委测试阿里云视频传输技术
  8. Mendix将升级低代码软件开发平台,发布全新数字化生态系统、行业云
  9. Docker容器资源管理,你真的学会了吗?
  10. 云+X案例展 | 民生类:浪潮云打卡人间仙境张家界