Dynamcaly добавление QcheckBoxes в QScrollArea?

У меня есть вектор строк, и мне нужно назначить каждую строку для флажка. Я пытаюсь вставить флажки в области прокрутки. У меня есть готовая полоса прокрутки в главном интерфейсе, которая называется полосой прокрутки. Как мне представить каждую строку в моем векторе как флажок в области прокрутки?

В настоящее время у меня есть:

for(auto word: words){  ///words is a vector of words

//My attempt to dynamicaly create a check box
QCheckBox *checkbox = new QCheckBox( QString::fromStdString(word);
this->ui->scrollArea->setWidget(checkbox);
}

По какой-то причине этот код будет добавлять только один флажок со словом в область прокрутки.

PS Если есть другой виджет, который будет проще использовать, кроме полосы прокрутки, я могу использовать его, если у меня есть возможность прокрутки.

1

Решение

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

QWidget container;
QVBoxLayout* containerLayout = new QVBoxLayout();
container.setLayout(containerLayout);
ui->scrollArea->setWidget(container);
for(auto word: words){
QCheckBox *checkbox = new QCheckBox(QString::fromStdString(word));
containerLayout->addWidget(checkbox);
}

Обратите внимание, что ваш оригинальный код синтаксически неверен. Я добавил недостающую закрывающую скобку.

1

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

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

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