长沙建站官网,网站维护学习,那个外贸网站做的好,用python做网站怎么赚钱阐述
本文旨在说明实现的思路。 当窗口创建很多QPushButton或者QPushButton的子类的时候#xff0c;若要实现在众多的按钮中#xff0c;每次被点击的按钮被选中#xff0c;下一次点击另一个按钮的时候#xff0c;上一个被选中的按钮恢复被选中之前的颜色#xff0c;可以使…阐述
本文旨在说明实现的思路。 当窗口创建很多QPushButton或者QPushButton的子类的时候若要实现在众多的按钮中每次被点击的按钮被选中下一次点击另一个按钮的时候上一个被选中的按钮恢复被选中之前的颜色可以使用下面这种实现。
思路
分4步 1.创建按钮的时候设置按钮可选中使用函数setCheckable; 2.创建按钮的时候将所有创建的按钮保存在一个容器中 3.绑定按钮的点击信号与处理点击的槽函数 4.定义类的全局变量QPushButton*类型的指针或者自定义的继承于QPushButton的按钮的指针用来指向上一次被选中的按钮对象构造函数中初始化该指针为nullptr在按钮点击信号绑定的槽函数中判断该指针是否为空不为空时将该指针所指向的对象设置为非选中即将上一次被选中的按钮设置为为选中然后更新当前被选中的按钮为上一次选中的按钮。 大体实习如下
//按钮可选中选中下一个前将之前的先设置为未选中if (m_beforeCheckedBtn) {m_beforeCheckedBtn-setChecked(false);}saveBeforeBtnCheckedBtn();上述代码中的函数的实现如下
void saveBeforeBtnCheckedBtn()
{QMapint,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;}}
}上述代码只是部分重在理解其大意。