在Qt中的单个小部件中添加复选框列表

时间:2010-11-01 01:01:52

标签: c++ qt

我正在使用Qt Creator 2.0.1(Qt 4.7)。我需要一个可以垂直容纳多个复选框的小部件。用户与其他UI元素交互时,复选框将动态添加到窗口小部件。小部件将具有固定的宽度和高度,因此如果复选框太多,则应显示垂直滚动条。

我想要的是,想象一下QListWidget,其中列表项可以是复选框。

哪个小部件可以让我这样做?

感谢。

3 个答案:

答案 0 :(得分:11)

您确实可以使用带有可检查项目的QListWidget(请参阅void QListWidgetItem::setFlags,或使用包含QWidget的{​​{3}},您可以动态添加QScrollArea你的选择取决于你!

答案 1 :(得分:11)

对该区域使用QListWidget。

QStringList  itemLabels= getLabels();

QStringListIterator it(itemLabels);
while (it.hasNext())
{
      QListWidgetItem *listItem = new QListWidgetItem(it.next(),listWidget);
      listItem->setCheckState(Qt::Unchecked);
      ui->listWidget->addItem(listItem);
}

这将自动使所有元素可检查,当列表增加时,它将启用滚动。

答案 2 :(得分:0)

QListWidget的替代方案是QScrollArea,里面有一个小部件,它有一个QVBoxLayout。对于该布局,您可以动态添加QCheckbox。您必须在添加新窗口小部件后调用updateGeometry(),否则如果已经可见,则UI可能不会更新。