#include "checkbox.h"
#include <QButtonGroup>
#include <QCheckBox>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QDebug>
checkbox::checkbox(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
pButtonGroup = new QButtonGroup(this);
//pButtonGroup->addButton(ui.checkBox, 1);
//pButtonGroup->addButton(ui.checkBox_2, 2);
//pButtonGroup->addButton(ui.checkBox_3, 3);
QVBoxLayout *pLayout = new QVBoxLayout();
setLayout(pLayout);
for (int i = 0; i < 3; ++i)
{
QCheckBox *pCheckBox = new QCheckBox(this);
// 设置文本
pCheckBox->setText(QString::fromLocal8Bit("切换%1").arg(i + 1));
pLayout->addWidget(pCheckBox);
pButtonGroup->addButton(pCheckBox);
}
connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
}
void checkbox::onButtonClicked(QAbstractButton *button)
{
// 当前点击的按钮
qDebug() << QString("Clicked Button : %1").arg(button->text());
// 遍历按钮,获取选中状态
QList<QAbstractButton*> list = pButtonGroup->buttons();
foreach(QAbstractButton *pCheckBox, list)
{
QString strStatus = pCheckBox->isChecked() ? "Checked" : "Unchecked";
qDebug() << QString("Button : %1 is %2").arg(pCheckBox->text()).arg(strStatus);
}
}
#if 0
QCheckBox{
spacing: 5px;
color: white;
}
QCheckBox::indicator{
width: 17px;
height: 17px;
}
QCheckBox::indicator:enabled : unchecked{
image: url(: / Images / checkBox);
}
QCheckBox::indicator : enabled : unchecked : hover{
image: url(: / Images / checkBoxHover);
}
QCheckBox::indicator : enabled : unchecked : pressed{
image: url(: / Images / checkBoxPressed);
}
QCheckBox::indicator : enabled : checked{
image: url(: / Images / checkBoxChecked);
}
QCheckBox::indicator : enabled : checked : hover{
image: url(: / Images / checkBoxCheckedHover);
}
QCheckBox::indicator : enabled : checked : pressed{
image: url(: / Images / checkBoxCheckedPressed);
}
QCheckBox::indicator : enabled : indeterminate{
image: url(: / Images / checkBoxIndeterminate);
}
QCheckBox::indicator : enabled : indeterminate : hover{
image: url(: / Images / checkBoxIndeterminateHover);
}
QCheckBox::indicator : enabled : indeterminate : pressed{
image: url(: / Images / checkBoxIndeterminatePressed);
}
#endif