组合框中的文本重叠图标

Text overlapping icon in combobox

我有一个包含项目所有样式的 qss 文件。在此文件中,我定义了我不想在组合框中看到任何指示器:

QComboBox::indicator{
    background-color: transparent;
    color: transparent;
    selection-background-color: transparent;
    selection-color: transparent;
}

这使指示器透明,但文本左侧仍有一些奇怪的指示器伪影。但是添加这个会使它消失:

QComboBox::item:selected
{
    /* If we don't specify a border we get an indicator reserved space to the left. (??) */
    border: none;
    background-color: @BG_SELECTED;
    color: @FG_SELECTED;
}

现在它在没有图标的组合框上非常完美,文本被推到最左边,看起来很整洁。现在的问题是,当有图标时,文本也会被推到左边。这意味着文本与图标重叠。 我通过以下方式修复了它:

QComboBox::item
{
    height: 10px;
    margin: 5px 0 0 5px;
    padding: 6px 0 5px 20px;
}

但问题是它也影响了没有图标的那个,使我的组合框下拉列表的左侧空白 space。

有谁知道如何在有图标的情况下让它向左移动,或者访问该图标并让它花费一些时间 space???

我已经找到了解决此问题的方法,因为 PySide 似乎无法仅使用 qss。

我所做的是从我的 qss 文件中抑制它:

QComboBox::item
{
    height: 10px;
    margin: 5px 0 0 5px;
    padding: 6px 0 5px 20px;
}

并通过将上述样式添加到每个需要它的组合框来修改我的 ui 文件。