QRadioButton检查/取消检查Qt中的问题

QRadioButton检查/取消检查Qt中的问题,qt,Qt,我发现与选中/取消选中QRadioButton相关的问题。我用于检查(白点)和取消选中(没有白点)的图像不会更新。 我的问题是:我实现了几个QRadioButton。这是第一次所有的QRadioButtons都被检查为false。所以这个案例的图像没有白点。当用户选择任何QRadioButton时,其图像将更改为另一个图像,即带有白点的图像。单击按钮时,我将单选按钮的状态从选中状态重置为取消选中状态。但是,图像状态没有改变。它们仍处于受控状态。代码片段如下所示: 代码: 每个QRADIO按钮的图

我发现与选中/取消选中QRadioButton相关的问题。我用于检查(白点)和取消选中(没有白点)的图像不会更新。 我的问题是:我实现了几个QRadioButton。这是第一次所有的QRadioButtons都被检查为false。所以这个案例的图像没有白点。当用户选择任何QRadioButton时,其图像将更改为另一个图像,即带有白点的图像。单击按钮时,我将单选按钮的状态从选中状态重置为取消选中状态。但是,图像状态没有改变。它们仍处于受控状态。代码片段如下所示:

代码:

每个QRADIO按钮的图像设置如下:

代码:


QRradioButton图像未更新的任何线索。谢谢

确保您的资源文件如下所示:

<qresource>
   <file>Resources/radio-btn-selected.png</file>
   <file>Resources/radio-btn-unselected.png</file>
</qresource>
  • 创建一个外部二进制资源文件,然后在运行时将其注册到
  • 或者,如果您使用的是设计器,则可以这样做

    • 您的问题很可能与

      setAutoExclusive(bool)

      默认情况下,属于同一父级的所有按钮的行为就像它们是同一个独占按钮组的一部分一样。选择一个按钮后,您无法返回取消选中所有按钮的状态

      解决方法是找出选中了哪个按钮,并针对该按钮执行以下操作

      theSelectedButton->setAutoExclusive(false);
      thsSelectedButton->setChecked(false);
      theSelectedButton->setAutoExclusive(true);
      
      有关更多信息,请查看以下链接:


      以下代码只处理一个问题:
      theSelectedButton->setCheckable(false);thsSelectedButton->setChecked(false);所选按钮->可设置检查(真)问题是,当您选择新单选按钮时,会出现以前选择的单选按钮。我该如何防止这种情况?请指导我。更新的代码如下:
      if(ui->radioButtonViewLocalData->isChecked()){//ui->radioButtonViewLocalData->setAutoExclusive(false);ui->radioButtonViewLocalData->setAutoExclusive(false);//ui->radioButtonViewLocalData->setAutoExclusive(true);ui->radioButtonViewLocalData->setCheckable(false);ui->radioButtonViewLocalData->update();ui->radioButtonViewLocalData->setCheckable(true);}
      除此答案外,如果您的按钮是QButtonGroup的一部分,则需要使用按钮组“setExclusive”函数:
      theSelectedButtonGroup->setExclusive(假);
      <qresource>
         <file>Resources/radio-btn-selected.png</file>
         <file>Resources/radio-btn-unselected.png</file>
      </qresource>
      
       RESOURCES = myresource.qrc
      
      QResource::registerResource("/path/to/myresource.rcc");
      
      theSelectedButton->setAutoExclusive(false);
      thsSelectedButton->setChecked(false);
      theSelectedButton->setAutoExclusive(true);