QCheckbox:比检查和取消选中更多状态

时间:2016-09-03 12:14:52

标签: c++ qt qcheckbox

是否可以为QCheckbox提供比Qt::CheckedQt::Unchecked更多的状态? 我有一个QTreeWidget,如果选中了一个项目,我希望父母显示一个填充复选框(某些状态如" Child检查")然后孩子应该有一个状态,如"父母检查"。如果后者太复杂而无法实现,我认为正常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): enter image description here

谢谢!

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找Qt::PartiallyChecked,其描述如下:

  

部分检查该项目。如果检查了他们的孩子中的一些但不是全部,则可以部分检查分层模型中的项目。