Добавление списка флажков в одном виджете в Qt - PullRequest
5 голосов
/ 01 ноября 2010

Я использую Qt Creator 2.0.1 (Qt 4.7). Мне нужен виджет, который может содержать несколько флажков по вертикали. Флажки будут добавлены в виджет динамически при взаимодействии пользователя с другим элементом пользовательского интерфейса. Виджет будет иметь фиксированную ширину и высоту, поэтому если флажков слишком много, должна появиться вертикальная полоса прокрутки.

Я хочу представить себе QListWidget, в котором элементы списка могут быть отмечены флажками.

Какой виджет позволит мне это сделать?

Спасибо.

Ответы [ 3 ]

11 голосов
/ 30 ноября 2012

Используйте 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);
}

это автоматически сделает проверяемыми все элементы, а при увеличении списка включит прокрутку.

11 голосов
/ 01 ноября 2010

Ну, вы действительно можете использовать QListWidget с проверяемыми элементами (см. void QListWidgetItem::setFlags, или использовать QScrollArea, содержащий QWidgetгде вы бы динамически добавили QCheckBoxes. Выбор за вами!

0 голосов
/ 01 ноября 2010

Альтернативой QListWidget является QScrollArea с виджетом внутри, который имеет QVBoxLayout. К этому макету вы можете динамически добавлять QCheckboxes. Вы должны вызвать updateGeometry () после добавления нового виджета, иначе пользовательский интерфейс может не обновиться, если он уже виден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...