将复选框信号连接到qt小部件中的方法



例如,我有三个文件generaalsetting.ui,generaalsettings.h,generaalstting.cpp.

我想在单击UI文件中的Notify复选框时触发enableNotification方法。通过将复选框的返回值传递给函数

我试过使用

connect(ui->notifyCheckBox, &QCheckBox::toggled, this, enableNotification(&QCheckBox::toggled));

connect(ui->notifyCheckBox, &QCheckBox::isChecked, this, enableNotification(&QCheckBox::toggled));

不起作用

这是标题和源

namespace Ui {
class GeneralSettings;
}
class GeneralSettings : public QWidget
{
Q_OBJECT
public:
explicit GeneralSettings(QWidget *parent = nullptr);
~GeneralSettings() override;
private slots:
void enableNotification(bool enable);
private:
Ui::GeneralSettings *ui;
Utils *utils;
};

源文件

GeneralSettings::GeneralSettings(QWidget *parent) :
QWidget(parent),
ui(new Ui::GeneralSettings)
{
ui->setupUi(this); 
//here is where i am adding the connect function.
}
void GeneralSettings::enableNotification(bool enable)
{
utils->settings->setValue("General/notify", enable);
}

附言:我只包括那些我觉得有用的

您可以连接到lambda:

connect(ui->yyy, &QCheckBox::toggled, [this]()
{
qDebug() << "sd.." << ui->yyy->isChecked();
enableNotification(ui->yyy->isChecked());
});

或直接,与信号相同

connect(ui->yyy, &QCheckBox::toggled,this, &Foo::enableNotification);

最新更新