Qt学习笔记(十六):QRadioButton 的常用方法


    // QRadioButton 是单选按钮,当有多个 QRadioButton 控件存在时,只能选中一个;
    // 一般在使用 QRadioButton 控件时,都需要给 QRadioButton 分组;
    // 使用 QGroupBox 控件进行分组,该控件通常带有一个边框和一个标题栏,作为容器部件来使用;
    // 需要注意的是,QGroupBox 容器内部必须使用布局控件(QLayout)进行布局;
    
    // 创建分组对象    
    QGroupBox *genderGroup = new QGroupBox(this);
    genderGroup->setTitle("性别");
    genderGroup->setGeometry(30, 20, 100, 100);
    
    QGroupBox *marryGroup = new QGroupBox("婚否", this);
    marryGroup->setGeometry(30, 150, 100, 100);
    
    // 创建4个单选框对象:指定其父对象为分组控件
    QRadioButton *rBtnMan = new QRadioButton("男", genderGroup);
    QRadioButton *rBtnWoman = new QRadioButton("女", genderGroup);
    QRadioButton *rBtnUnknown = new QRadioButton("未知", genderGroup);
    rBtnMan->setChecked(true);  // 设置默认选中
    
    // QRadioButton 有一个状态切换的信号 toggled,即该信号在状态切换时发送;
    connect(rBtnMan, &QRadioButton::toggled, [=](bool isChecked){
        if (isChecked == true)
            qDebug() << "单选框被选中了";
        else if (isChecked == false)
            qDebug() << "单选框失去焦点了";
    });
    
    QRadioButton *rBtnSpinsterhood = new QRadioButton("未婚", marryGroup);
    QRadioButton *rBtnMarried = new QRadioButton("已婚", marryGroup);
    rBtnSpinsterhood->setChecked(true);
    
    // 创建性别组布局:垂直布局;指定其父对象为分组控件
    QVBoxLayout *genderLayout = new QVBoxLayout(genderGroup);
    genderLayout->addWidget(rBtnMan);
    genderLayout->addWidget(rBtnWoman);
    genderLayout->addWidget(rBtnUnknown);
    
    // 创建婚否组布局:垂直布局;指定其父对象为分组控件
    QVBoxLayout *marryLayout = new QVBoxLayout(marryGroup);
    marryLayout->addWidget(rBtnSpinsterhood);
    marryLayout->addWidget(rBtnMarried);
    
    // 将布局控件添加到组中
    genderGroup->setLayout(genderLayout);
    marryGroup->setLayout(marryLayout);

效果:

 


上面是通过代码实现的,还可以在界面设计器上快速的布局控件。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值