繁体   English   中英

如何使用 QGroupBox 和 QCheckBoxes 相互勾选?

[英]How to use QGroupBox and QCheckBoxes to one check another?

我试图了解如何使用信号来检查一个QCheckBox时取消选中同一QGroupBox中存在的所有其他复选框

class GroupBox : public QGroupBox
{
public:

    GroupBox(QWidget *parent = nullptr) : QGroupBox(parent) 
    {

    }

public slots:
    void uncheck();

};



class CheckBox : public QCheckBox
{
public:

    CheckBox(QWidget *parent = nullptr) : QCheckBox(parent) 
    {
        connect(this, SIGNAL(checked()), this, SLOT(checked()));
    }

public slots:

    void checked()
    {
        qDebug() << "checked";
    }
};

当我单击其中一个复选框时,它没有 go 到 function checked()

QCheckBox继承自QAbstractButton

您应该使用clickedstateChanged信号而不是 checked。

当量

 connect(this, SIGNAL(stateChanged(int)), this, SLOT(checked(int)));

顺便提一句; 如果使用现代 Qt 版本,您应该放弃SIGNALSLOTS宏,而是使用在编译时检查的新connect()语法。

参考:新信号槽语法

EP

 connect(this, &QCheckBox::clicked, this, &CheckBox::checked);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM