(原创)RadioButton设置setChecked(true)的异常

Android开发中,RadioButton是我们用的比较多的一个控件

我们可以配合selector来定制它的各种样式

还可以使用setChecked()和getChecked()来设置以及获得它的相关选中状态

然后在使用setChecked(true)方法时,我们却发现

RadioButton并不会在页面上更改自己的显示状态

但实际上它以及被设置选中了

就是页面没有按照selector的显示样式来

其实setChecked(true) 方法的作用是使RadioButton一直处于选中状态.

而要真正动态修改RadioButton的状态,

需要用到包裹它的RadioGroup里的方法

具体是下面两个方法

RadioGroup.check(radioButton.getId()); 选中某一个子RadioButton

RadioGroup的clearCheck();设置RadioButton为初始的都不选中状态

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要设置Qt中的RadioButton为选中状态,可以使用setChecked()函数。例如: radioButton->setChecked(true); 其中,radioButton是指向RadioButton对象的指针。将参数设置true表示将RadioButton设置为选中状态。 ### 回答2: 在Qt中,可以使用QRadioButton类实现单选按钮的功能。当用户选择单选按钮时,可以使用setChecked(True)方法将其设置为选中状态。 以下是设置QRadioButton选中的几种常见方法: 1.使用setChecked()方法 在Qt中,可以通过setChecked()方法设置QRadioButton选中。例如,以下代码设置名为radioButton_1的单选按钮为选中状态: ``` radioButton_1->setChecked(true); ``` 2.使用QButtonGroup类 可以使用QButtonGroup类来管理一组单选按钮。使用setExclusive()方法可以将其设置为互斥选项,只能选择其中一个单选按钮。 例如,以下代码将QButtonGroup命名为buttonGroup,并使用addButton()方法将两个单选按钮添加到其中。其中,将第一个单选按钮设置为选中状态: ``` QButtonGroup *buttonGroup = new QButtonGroup(this); QRadioButton *radioButton_1 = new QRadioButton(tr("RadioButton1")); QRadioButton *radioButton_2 = new QRadioButton(tr("RadioButton2")); buttonGroup->addButton(radioButton_1, 0); buttonGroup->addButton(radioButton_2, 1); radioButton_1->setChecked(true); ``` 3.使用信号和槽 可以使用信号和槽实现单选按钮选中。例如,可以在单选按钮被点击时,触发一个槽函数,并在槽函数中设置选中状态。以下是代码示例: 在.h文件中声明槽函数: ``` private slots: void on_radioBtn_clicked(); ``` 在.cpp文件中实现槽函数: ``` void Demo::on_radioBtn_clicked() { QRadioButton *radioBtn = qobject_cast<QRadioButton *>(sender()); if (!radioBtn) return; radioBtn->setChecked(true); } ``` 并在connect()函数中链接到相应的单选按钮: ``` connect(ui->radioButton_1, SIGNAL(clicked()), this, SLOT(on_radioBtn_clicked())); connect(ui->radioButton_2, SIGNAL(clicked()), this, SLOT(on_radioBtn_clicked())); ``` 总结: 以上是设置QRadioButton选中的几种常见方法。在实际应用中,根据具体情况选择合适的方法即可。使用setChecked()方法最为简单直接,但如果有多个单选按钮需要管理时,建议使用QButtonGroup类。如果需要实现更加复杂的操作,可以考虑使用信号和槽方式。 ### 回答3: 在Qt中设置Radiobutton的选中状态,一般可以使用setChecked()方法。该方法可以接收一个布尔值,如果为true,则被设置为选中状态,否则为未选中状态。如下面的代码所示,在构造函数中设置一个初始状态: ``` myRadioButton = new QRadioButton("选项一"); myRadioButton->setChecked(true); // 设置为选中状态 ``` 如果需要在运行时动态设置Radiobutton的选中状态,可以在程序中获取Radiobutton的指针,然后调用setChecked()方法,将其选中状态设置true或false。例如: ``` QRadioButton* myRadioButton = new QRadioButton("选项一"); if(someCondition) { myRadioButton->setChecked(true); // 设置为选中状态 } else { myRadioButton->setChecked(false); // 设置为未选中状态 } ``` 在Qt中,还可以使用buttonGroup的方式来实现Radiobutton的选中。当Radiobutton分组时,只能同时选中其中的一个,这样可以更好地控制和管理Radiobutton的选中状态。具体实现方法如下: ``` QButtonGroup* group = new QButtonGroup(this); QRadioButton* radioBtn1 = new QRadioButton("选项一"); QRadioButton* radioBtn2 = new QRadioButton("选项二"); group->addButton(radioBtn1, 0); group->addButton(radioBtn2, 1); radioBtn1->setChecked(true); ``` 使用buttonGroup组合Radiobutton时,需要先创建一个buttonGroup对象,并将需要分组的Radiobutton添加到其中,同时为每个Radiobutton设置一个唯一的ID。然后,使用setChecked()方法设置默认选中的Radiobutton即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值