组合框中的文本重叠图标
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 文件。
【讨论】:
以上是关于组合框中的文本重叠图标的主要内容,如果未能解决你的问题,请参考以下文章