在组合框中的文本重叠图标

时间:2016-02-26 10:42:00

标签: python css qt combobox pyside

我有一个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;
}

但问题是它也会影响没有图标的那个,在我的组合框下拉列表左侧留下一个白色空白区域。

有没有人知道如果有图标或者可以访问图标并让它占用一些空间,如何让它向左移动???

1 个答案:

答案 0 :(得分:0)

我已经想出了一种方法来解决这个问题的解决方法,因为PySide似乎不能只使用qss。

我所做的就是从我的qss文件中删除它:

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

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