1

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

4

1 回答 1

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

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

于 2014-04-05T08:24:40.690 回答