将 QcheckBox 添加到 QScrollArea 的动态

Dynamcaly adding QcheckBoxes to a QScrollArea?

本文关键字:动态 QScrollArea QcheckBox 添加      更新时间:2023-10-16

word我有一个字符串向量,我需要将每个字符串分配给一个复选框。我正在尝试将复选框插入滚动区域。我的主 UI 上有一个名为滚动条的预制滚动条。如何将向量中的每个字符串表示为滚动区域中的复选框?

目前我有:

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 如果有另一个更容易使用的小部件,那么滚动条我可以使用它,只要我能够滚动。

我个人会使用容器小部件,如下所示:

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);
}

请注意,原始代码在语法上不正确。我添加了缺少的右括号。