发布时间:2023-03-10 17:00
注意:QCheckBox默认是多选,只要一组QCheckBox不在一个层级(就是在不同父节点下面),就可以变成互斥不受影响。
//用lambda表达式绑定信号槽
void (QButtonGroup::*buttonClicked)(QAbstractButton *) = &QButtonGroup::buttonClicked;
connect(group, buttonClicked, [=](QAbstractButton *but) {
qDebug() << but->objectName() << "|" << but->isChecked();
});
//加组后默认变成单选
QButtonGroup *group = new QButtonGroup(this);
group->addButton(ui.checkBox);
group->addButton(ui.checkBox_2);
QRadioButton *pButton1 = new QRadioButton("QRadioButton001");
QRadioButton *pButton2 = new QRadioButton("QRadioButton002");
QRadioButton *pButton3 = new QRadioButton("QRadioButton001");
//按钮组
QButtonGroup *pGroup = new QButtonGroup(this);
pGroup->setObjectName("group");
pGroup->addButton(pButton1);
pGroup->addButton(pButton2);
pGroup->addButton(pButton3);
//垂直布局器
QVBoxLayout *layout = new QVBoxLayout(this);
//遍历按钮组
for (const auto &it : pGroup->buttons())
{
layout->addWidget(it);
}
QPushButton *button = new QPushButton(QString::fromLocal8Bit("保存"),this);
connect(button, &QPushButton::clicked, [=]() {
//获取按钮组
QButtonGroup *pGroup = this->findChild<QButtonGroup *>("group");
if (pGroup != nullptr)
{
//获取按钮组的哪个按钮被点击
QRadioButton *but = dynamic_cast<QRadioButton *>(pGroup->checkedButton());
if (but != nullptr)
{
QMessageBox::information(this, "", but->text());
}
}
});
layout->addWidget(button);
阿里如何实现100%容器化镜像化?八年技术演进之路回顾(转)
【AI100篇经典论文】Do ImageNet Classifiers Generalize to ImageNet
清华镜像用不了?conda安装tensorflow教程以及多种报错的解决(windows环境)
基于ycbcr的图像火灾检测系统 基于matkab的GUI系统
java Spring Cloud+Spring boot+mybatis 工程管理系统源码之SpringCloud Apollo本地部署详细步骤
【JavaScript 进阶教程】非 extends 的组合继承
重磅!原清华副校长任职南科大校长:他考研三次,读博七年,想做科研人偶像...
Redis键通知相关小记(EVENT NOTIFICATION)