组合框中的文本重叠图标

Posted

技术标签:

【中文标题】组合框中的文本重叠图标【英文标题】:Text overlapping icon in combobox 【发布时间】:2016-02-26 10:42:00 【问题描述】:

我有一个 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】:

我已经找到了一种解决方法来解决这个问题,因为 PySide 似乎无法仅使用 qss。

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

QComboBox::item

    height: 10px;
    margin: 5px 0 0 5px;
    padding: 6px 0 5px 20px;

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

【讨论】:

以上是关于组合框中的文本重叠图标的主要内容,如果未能解决你的问题,请参考以下文章

使用组合框中的选择填充文本框中的计算字段

如何取消选择具有下拉样式的组合框中的文本?

ms silverlight blend sketchflow - 组合框中的默认文本

通过键入选择组合框中的项目

如何动态更改 C# 组合框或文本框中的自动完成条目?

组合框多选以在 Access 2016 中的文本框中显示所选项目