【问题标题】:Dynamcaly adding QcheckBoxes to a QScrollArea?Dynamcaly 将 QcheckBoxes 添加到 QScrollArea?
【发布时间】:2014-04-05 08:10:45
【问题描述】:

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

【问题讨论】:

  • 为什么不将它们添加到将被添加到滚动区域的容器小部件中?
  • 我该怎么做?

标签: c++ qt qcombobox qscrollarea qtwidgets


【解决方案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);
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    相关资源
    最近更新 更多