您現在的位置是:首頁 >動態 > 2023-07-26 11:12:13 來源:
buttongroup組件的作用(buttongroup)
大家好,我是小華,我來為大家解答以上問題。buttongroup組件的作用,buttongroup很多人還不知道,現在讓我們一起來看看吧!
1、用慣了qt3的朋友在使用qt4的時候肯定會有些不適應,包括構建界面,一些類的使用上,都有一些區別,總得來說Qt4在編程方式上設計的更加合理了,因為它把界面代碼和操作代碼完全的“隔離”開了,這樣就避免了我們在后期修改界面然后編譯的時候會重寫操作代碼帶來的尷尬局面了。qt4除了在界面設置上做了優化,還對一些類做了精簡。比如原來Qt3上面的QButtonGroup類,在qt4的designer上面就沒有表現出來。只是保留了原來qt3的ButtonGroup。是不是qt4上面就沒有QButtonGroup類了呢,當然不是了。在qt4的assistant上面介紹QButtonGroup時說到:“QButtonGroup provides an abstract Container into which button widgets can be placed. It does not provide a visual representation of this container (see QGroupBox for a container widget), but instead manages the states of each of the buttons in the group”。其中提到QButtonGroup 提供的是一個放置按鍵控件的虛擬容器,但它不是個可視的容器。意思就是QButtonGroup 在qt4中變成了一個抽象的類。但是還可以像以前那樣管理里面的按鍵。用法如下:
2、 首先就是要先聲明一個QButtonGroup類的對象:QButtonGroup *buttonGroup;
3、 接著在初始化或者構造函數里面給這個指針對象分配空間:buttonGroup = new QButtonGroup;
4、 然后就可以用addButton()函數把想要放置的按鍵添加進去:
5、 buttonGroup->addButton( ui.pushButton0, 0 );
6、 buttonGroup->addButton( ui.pushButton1, 1 );
7、 buttonGroup->addButton( ui.pushButton2, 2 );
8、 buttonGroup->addButton( ui.pushButton3, 3 );
9、 buttonGroup->addButton( ui.pushButton4, 4 );
10、 buttonGroup->addButton( ui.pushButton5, 5 );
11、 buttonGroup->addButton( ui.pushButton6, 6 );
12、 buttonGroup->addButton( ui.pushButton7, 7 );
13、 buttonGroup->addButton( ui.pushButton8, 8 );
14、 buttonGroup->addButton( ui.pushButton9, 9 );
15、 這樣就能把想要的按鍵與它所對應的ID號對應起來了,每一次點擊按鍵時QButtonGroup都會信號buttonClicked (int ID)發射,通過判斷ID的槽與其連接,就可以實現按鍵的判斷了。例如:
16、 connect( buttonGroup, SIGNAL(buttonClicked (int)), this, SLOT(buttonJudge(int)) );//連接信號和槽
17、最后在槽函數中判斷按鍵就可以了。當然槽函數記得要事先聲明。
18、void IPhone::buttonJudge(int buttonID)
19、{
20、 if((modeFlag == defaultMode) || (modeFlag == hangupMode) || (modeFlag == inputMode))
21、{
22、 resetFont(1);
23、 if(modeFlag != inputMode)
24、 ui.lineEdit->clear();
25、 modeFlag = inputMode;
26、 switch (buttonID)
27、 {
28、 case 0: ui.lineEdit->insert("0"); break;
29、 case 1: ui.lineEdit->insert("1"); break;
30、 case 2: ui.lineEdit->insert("2"); break;
31、 case 3: ui.lineEdit->insert("3"); break;
32、 case 4: ui.lineEdit->insert("4"); break;
33、 case 5: ui.lineEdit->insert("5"); break;
34、 case 6: ui.lineEdit->insert("6"); break;
35、 case 7: ui.lineEdit->insert("7"); break;
36、 case 8: ui.lineEdit->insert("8"); break;
37、 case 9: ui.lineEdit->insert("9"); break;
38、 case 10: ui.lineEdit->insert("."); break;
39、 case 11: ui.lineEdit->insert("#"); break;
40、 default: break;
41、 }
42、}
43、}
44、這樣就能實現簡單按鍵判別了。
本文到此講解完畢了,希望對大家有幫助。