/* QButtonGroup 實現QPushButton 互斥管理, 一個按鈕按下,其它按鈕會被自動彈起, 按下的按鈕用背景標藍表示
* 功能簡單,邏輯請看註釋,直接上代碼了.
*/
#include <QtGui>
QString but_style=QString("\
QPushButton:checked { /*按鈕被選擇時*/\
background-color:blue;\
}");
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QPushButton *but1 = new QPushButton("but 1"); //創建按鈕
QPushButton *but2 = new QPushButton("but 2");
QPushButton *but3 = new QPushButton("but 3");
but1->setStyleSheet(but_style); //設置按鈕style
but2->setStyleSheet(but_style);
but3->setStyleSheet(but_style);
but1->setCheckable(true); //設置按鈕可選擇
but2->setCheckable(true);
but3->setCheckable(true);
QVBoxLayout *layout = new QVBoxLayout(); //佈局管理
layout->addWidget(but1);
layout->addWidget(but2);
layout->addWidget(but3);
QButtonGroup *pushButtonGroup = new QButtonGroup(); //ButtonGroup 沒有佈局功能,但有互斥組管理功能
pushButtonGroup->setExclusive(true);
pushButtonGroup->addButton(but1); //將按鈕加入組
pushButtonGroup->addButton(but2);
pushButtonGroup->addButton(but3);
QWidget *widget = new QWidget(); //顯示
widget->setLayout(layout);
widget->show();
return app.exec();
}