Dynamcaly将QcheckBox添加到QScrollArea?

时间:2014-04-05 08:10:46

标签: c++ qt qcombobox qscrollarea qtwidgets

wordI有一个字符串向量,我需要将每个字符串分配给一个复选框。我试图将复选框插入滚动区域。我的主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如果有另一个小部件更容易使用,那么滚动条我可以使用它,只要我有能力滚动。

1 个答案:

答案 0 :(得分: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);
}

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