Соедините Сигнал и Слоты с QPointer

Я создаю приложение GUI, в котором у меня есть динамический QComboBox. я использовал QPointer создать объект QComboBox так что умный указатель управляет утечкой памяти. Но когда я использую соединение для использования сигнала currentTextChanged, это дает мне ошибку.
Код ниже.

QPointer<QComboBox> CMB_ItemType = new QComboBox;
connect(CMB_ItemType, &QComboBox::currentTextChanged, [&](const QString val){ui->TW_Contents->setCellWidget(nRow, 1, CMB_ItemContent);});

ОШИБКА:

     error: no matching function for call to 'EditRegionClass::connect(QPointer<QComboBox>&, void (QComboBox::*)(const QString&), EditRegionClass::addContent(QString, QString)::__lambda43)'
connect(CMB_ItemType, &QComboBox::currentTextChanged, [&](const QString val){ui->TW_Contents->setCellWidget(nRow, 1, CMB_ItemContent);});
^

Могу ли я использовать сигнал и слоты с QPointer?

0

Решение

Мой тестовый вариант работает хорошо:

QPointer<QLineEdit> le = new QLineEdit;
connect(le, &QLineEdit::textChanged, this, &QWidget::close);

Я думаю, что есть некоторые проблемы с вашей лямбда.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]