Можно ли иметь больше состояний для QCheckbox
чем Qt::Checked
а также Qt::Unchecked
?
у меня есть QTreeWidget
и если элемент отмечен, я хочу, чтобы родитель показывал заполненный флажок (в каком-то состоянии, например, «проверен дочерний элемент»), а потом у детей должно быть состояние, подобное «проверен родитель». Если последний будет слишком сложным для достижения, я думаю, что нормальный Qt::Checked
также будет работать нормально. Но как добиться первого? Вот мой код, как я в настоящее время добавляю элементы с флажками:
QTreeWidgetItem* Options::folderMonitoringCreateTreeCheckbox(QDir *dir, bool state, QTreeWidget *parent)
{
QString text = dir->absolutePath().section('/', -1, -1, QString::SectionSkipEmpty);
QTreeWidgetItem *newItem = new QTreeWidgetItem(parent);
newItem->setText(0,text);
newItem->setFlags(newItem->flags() | Qt::ItemIsUserCheckable);
newItem->setCheckState(0, Qt::Unchecked);
newItem->setToolTip(0, dir->absolutePath());
return newItem;
}
Вот скриншот того, чего я хочу достичь (скриншот взят из MediaMonkey):
Спасибо!
Я думаю, что вы ищете Qt::PartiallyChecked
, описание этого говорит:
Товар частично проверен. Элементы в иерархических моделях могут быть частично проверены, если проверены некоторые, но не все их дочерние элементы.
Других решений пока нет …