我继承了一个使用Qt作为GUI库的主题应用程序。 除此之外,它还有一个使用 QTreeView 构建的关键字树,它以标准方式对文件夹 Pane 中的选定项目进行 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;
}
有什么帮助吗?
最佳答案
正如您在 docs 中看到的那样
QCheckBox 处于不确定状态,您的样式未为其定义图像。
您应该为这些创建图像:
QTreeView::indicator:indeterminate{
image: url(...);
}
QTreeView::indicator:indeterminate:disabled{
image: url(...);
}
关于Qt-QTreeView : How to show a checkbox in a themed application?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17781234/