【问题标题】:QCheckbox: more states than checked and uncheckedQCheckbox:比选中和未选中状态更多
【发布时间】:2016-09-03 12:14:52
【问题描述】:

QCheckbox 有可能比Qt::CheckedQt::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

标签: c++ qt qcheckbox


【解决方案1】:

我想你正在寻找Qt::PartiallyChecked,它的描述是:

该项目已部分检查。如果检查了部分而非全部子项,则分层模型中的项可能会被部分检查。

【讨论】:

  • 谢谢,正如我在帖子的评论中已经说过的那样:我正在搜索“填充的 qcheckbox”,但找不到类似的东西,这正是我需要的。
猜你喜欢
  • 2017-06-07
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 2014-07-23
  • 2016-07-16
  • 2014-03-31
  • 2020-01-18
  • 2016-06-19
相关资源
最近更新 更多