当前位置: 代码迷 >> 综合 >> QRadioButton connect后槽函数未被执行
  详细解决方案

QRadioButton connect后槽函数未被执行

热度:83   发布时间:2023-10-21 02:01:19.0

问题描述

QRadioButton connect后槽函数未被执行:

QRadioButton相关声明:

QRadioButton *UIRadioButton_XYZ,*UIRadioButton_PVR;

QRadioButton相关定义:

UIRadioButton_XYZ = new QRadioButton("XYZ");UIRadioButton_PVR = new QRadioButton("PVR");connect(UIRadioButton_XYZ, SIGNAL(clicked()), this, SLOT(operatingButtonsClicked_XYZ()));connect(UIRadioButton_PVR, SIGNAL(clicked()), this, SLOT(operatingButtonsClicked_PVR()));

槽函数:

void Widget::operatingButtonsClicked_XYZ()
{qDebug() << "XYZ";UIStartLiEd_X->setEnabled(false);UIStartLiEd_Y->setEnabled(false);UIStartLiEd_Z->setEnabled(false);UIStartLiEd_P->setEnabled(true);UIStartLiEd_V->setEnabled(true);UIStartLiEd_R->setEnabled(true);
}void Widget::operatingButtonsClicked_PVR()
{qDebug() << "PVR";UIStartLiEd_X->setEnabled(true);UIStartLiEd_Y->setEnabled(true);UIStartLiEd_Z->setEnabled(true);UIStartLiEd_P->setEnabled(false);UIStartLiEd_V->setEnabled(false);UIStartLiEd_R->setEnabled(false);
}

声明的时候也保证了两个槽函数实在priviate slots下面的,按理说应该没有问题,但实际点击的时候依然无法执行

解决方法

问题在于没有定义QButtonGroup将两个QRadioButton加入其中,QT机制无法链接到槽函数。

解决方法:

    operatingModeGroup = new QButtonGroup(this);operatingModeGroup->addButton(UIRadioButton_XYZ, 1);operatingModeGroup->addButton(UIRadioButton_PVR, 2);

 

 

  相关解决方案