【问题标题】:Qt - QTreeView: How to show a checkbox in a themed application?Qt - QTreeView:如何在主题应用程序中显示复选框?
【发布时间】:2013-07-22 15:28:00
【问题描述】:

我继承了一个使用 Qt 作为 GUI 库的主题应用程序。 除此之外,它还有一个关键字树,它是使用 QTreeView 构建的,它以标准方式对文件夹窗格中的选定项目进行 WRT:

即。如果选择的所有项目都分配了关键字“植物”,则选中“植物”复选框。如果没有任何项目具有所述关键字,则未选中复选框,并且如果选择的某些项目已分配关键字“植物”,则该复选框将变灰。

问题是,虽然上述模型工作正常,但当复选框变灰(处于“不确定”状态)时,它会从屏幕上消失:

复选框仍然存在(用户可以单击它并按预期工作)但它是不可见的。

我该如何解决这个问题?

...因为我怀疑这是主题的问题,所以我将主题中的相关(恕我直言)部分粘贴到此处:

QTreeView::indicator{
    border: 0px solid red;
    width: 14px;
    height: 16px;
}

QTreeView::indicator:unchecked{
     image: url(UI:checkbox_unchecked.png);
 }

QTreeView::indicator:unchecked:disabled{
     image: url(UI:checkbox_unchecked_disabled.png);
 }

QTreeView::indicator:checked{
     image: url(UI:checkbox_checked.png);
 }

QTreeView::indicator:checked:disabled{
     image: url(UI:checkbox_checked_disabled.png);
}

QTreeView#UIGroup_TreeView{
    background-color: rgb(40, 40, 40);
    alternate-background-color:  rgb(50, 50, 50);
    border: 0px solid black;
}

有什么帮助吗?

【问题讨论】:

    标签: qt checkbox treeview themes


    【解决方案1】:

    正如您在docs 中看到的那样

    QCheckBox 有一个不确定的状态,您的样式没有为其定义图像。

    您应该为这些创建图像:

    QTreeView::indicator:indeterminate{
         image: url(...);
     }
    
    QTreeView::indicator:indeterminate:disabled{
         image: url(...);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      相关资源
      最近更新 更多