在表单构造函数中,我检查各种成员的状态,然后根据单选按钮的状态调用true或false的setChecked。

我本以为这会调用与单选按钮相关联的回调/插槽,它不起作用或不起作用。例如,我在窗体上有两个单选按钮,rdoOn和rdoOff,在构造函数中,我检查状态,然后调用:

    ui->rdoOn->setChecked(true);


要么

    ui->rdoOn->setChecked(false);


我在类中有插槽可以处理这些,单击单选按钮时将调用这些插槽,而在调用setChecked时则不会。

    void clsName::on_rdoOn_clicked() {
    ...
    }


无论如何,除了直接调用插槽以将插槽的调用与调用setChecked链接之外,还有其他方法吗?

最佳答案

您必须使用toggled信号:

*。H

class clsName: ....
{
// ...
private Q_SLOTS:
    void onToggled(bool checked);
// ...
};


* .cpp


// constructor
connect(ui->rdoOn, &QAbstractButton::toggled, this, &clsName::onToggled);

void clsName::onToggled(bool checked){
    qDebug() << checked;
}

08-17 04:36