QCheckbox имя доступа

Я создаю флажки следующим образом:

foreach(QString filt, types){
QCheckBox *checkbox = new QCheckBox(filt, this);
checkbox->setChecked(true);
vbox->addWidget(checkbox);
}

Мне нужно получить доступ к этим флажкам по имени, но они все называются одинаковыми?

Мне нужно прочитать текст, который они отображают.

Как я могу пойти по этому поводу?

Можно ли запустить цикл for и прикрепить значение i в конце флажка. Таким образом, по сути, флажок будет называться checkbox [0], checkbox [1] и т. Д.?

РЕДАКТИРОВАТЬ:

Я изменил код на следующее:

for(int i=0; i<types.count(); ++i)
{
QString filt = types[i];
*checkboxCount = *checkboxCount + 1;
QCheckBox *typecheckbox[i] = new QCheckBox(filt, this);
typecheckbox[i]->setChecked(true);
vbox->addWidget(typecheckbox[i]);
}

Я подумал, что это был способ динамического именования флажков, чтобы я мог проходить через них, чтобы получить от них текстовое значение.

Я получаю ошибкуобъект переменного размера не может быть инициализирован‘на этой линии QCheckBox *typecheckbox[i] = new QCheckBox(filt, this);

Любые идеи для решения / альтернативного подхода?

2

Решение

Если вы хотите получить доступ к флажкам позже, вы можете просто использовать найти детей метод следующее:

QStringList myStringList;
QList<QCheckBox *> list = vbox->findChildren<QCheckBox *>();
foreach (QCheckBox *checkBox, list) {
if (checkBox->isChecked())
myStringList.append(checkBox->text());
}
2

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


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