Checkbox 无法隐藏QComboBox的选择指示器

Checkbox 无法隐藏QComboBox的选择指示器,checkbox,stylesheet,indicator,qcombobox,qtstylesheets,Checkbox,Stylesheet,Indicator,Qcombobox,Qtstylesheets,编程器 当我设置属于QCOMBOX(根据QSS)的列表视图的背景色时,该QCOMBOX将不再使用内置的opticel外观。Instaed我必须根据QSS样式表指定所有光学设置: QComboBox QListView { background-color:white; border:1px solid black; } 显示可选择项的列表视图现在在左侧显示一个复选框。对于上次使用时选择的项目,选中此框 如何隐藏带有复选框的列,使其不可见且不会占用屏幕上的任何空间? 提前感谢……

编程器

当我设置属于QCOMBOX(根据QSS)的列表视图的背景色时,该QCOMBOX将不再使用内置的opticel外观。Instaed我必须根据QSS样式表指定所有光学设置:

QComboBox QListView {
    background-color:white;
    border:1px solid black;
}
显示可选择项的列表视图现在在左侧显示一个复选框。对于上次使用时选择的项目,选中此框

如何隐藏带有复选框的列,使其不可见且不会占用屏幕上的任何空间?


提前感谢……

QSS解决方案,用于QComboBox的一个难画主题

如果不使用QSS块,QComboBox将使用其OS外观绘制。如果开始指定QSS规则,QComboBox的部分或所有子控件将开始失去操作系统的外观。在最坏的情况下,您现在必须在QSS中指定所有属性

本文的主题是选择指示器,由QStyleViewItem类绘制,QStyleViewItem类是在QT源代码中的…/src/gui/widgets/qcombobox_p.h中实现的一个呈现辅助程序。QProxyStyle的子类似乎不可能修改此功能,而QProxyStyle可以在其他情况下用于硬布局问题

但是,我在QSS中通过指定一组精心选择的规则找到了解决方案:

/* Background color of popup-list.*/ 
QComboBox QListView{
    background-color:white;
    border:1px solid gray;
}
/* Needed to complete the rule set. */
QComboBox::item:alternate {
    background: white;
}
/* Color of the selected list item. */
QComboBox::item:selected {
    border: 1px solid transparent;
    background:yellow;
}
/* Indicator will shine through the label text if you don't make it hidden. */
QComboBox::indicator{
    background-color:transparent;
    selection-background-color:transparent;
    color:transparent;
    selection-color:transparent;
}