记录一种多个按钮中每次只能选中一个的实现方式
生活随笔
收集整理的這篇文章主要介紹了
记录一种多个按钮中每次只能选中一个的实现方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
闡述
本文旨在說明實現(xiàn)的思路。
當窗口創(chuàng)建很多QPushButton或者QPushButton的子類的時候,若要實現(xiàn)在眾多的按鈕中,每次被點擊的按鈕被選中,下一次點擊另一個按鈕的時候,上一個被選中的按鈕恢復(fù)被選中之前的顏色,可以使用下面這種實現(xiàn)。
思路
分4步:
1.創(chuàng)建按鈕的時候,設(shè)置按鈕可選中,使用函數(shù)setCheckable;
2.創(chuàng)建按鈕的時候,將所有創(chuàng)建的按鈕保存在一個容器中;
3.綁定按鈕的點擊信號與處理點擊的槽函數(shù);
4.定義類的全局變量,QPushButton*類型的指針,或者自定義的繼承于QPushButton的按鈕的指針,用來指向上一次被選中的按鈕對象,構(gòu)造函數(shù)中初始化該指針為nullptr,在按鈕點擊信號綁定的槽函數(shù)中,判斷該指針是否為空,不為空時,將該指針所指向的對象設(shè)置為非選中,(即將上一次被選中的按鈕設(shè)置為為選中),然后更新當前被選中的按鈕為上一次選中的按鈕。
大體實習如下:
上述代碼中的函數(shù)的實現(xiàn)如下:
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;}} }上述代碼只是部分,重在理解其大意。
總結(jié)
以上是生活随笔為你收集整理的记录一种多个按钮中每次只能选中一个的实现方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt中使用QCompleter实现查找功
- 下一篇: pypi.python.org_在Pyp