2016-02-26 104 views
0

我有一個qss文件,其中包含項目的所有樣式。在這個文件中,我定義,我不希望看到任何指標的組合框:ComboBox中的文本重疊圖標

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; 
} 

但問題是,它也影響到沒有圖標的人,在我的組合框下拉列表的左側做一個白色的空白區域。

有誰知道如何讓它移動到左邊,如果有圖標或可能訪問該圖標,並使其佔用一些空間?

回答

0

我已經想通過一種解決方法來解決這個問題,因爲PySide只使用qss並不可能。

我所做的是從我的QSS文件抑制這樣的:

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

,並通過添加上述一塊造型到需要它的每一個組合框修改我的UI文件。