我正在使用Qt Creator 2.0.1(Qt 4.7)。我需要一个可以垂直容纳多个复选框的小部件。用户与其他UI元素交互时,复选框将动态添加到窗口小部件。小部件将具有固定的宽度和高度,因此如果复选框太多,则应显示垂直滚动条。
我想要的是,想象一下QListWidget,其中列表项可以是复选框。
哪个小部件可以让我这样做?
感谢。
答案 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可能不会更新。