【发布时间】:2016-09-03 12:14:52
【问题描述】:
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 怎么样?
-
@Fabio 谢谢!我总是用谷歌搜索“填充的 qcheckbox”,但找不到类似的东西! :)
-
我第一次在 Qt 中看到部分选中的复选框是在 Qt SDK 安装程序中。 :D