2012-07-23 67 views
1

程序員無法隱藏的QComboBox

選擇-指示燈當我設置屬於QComboBox(每QSS)列表視圖的背景顏色,那麼這個QComboBox將不再使用內置光學外觀和感覺。 Instaed我也必須指定所有的光學配置每QSS-樣式表:

QComboBox QListView { 
    background-color:white; 
    border:1px solid black; 
} 

列表視圖,它顯示了chosable項目,現在顯示在左側的複選框。檢查這個盒子是否爲上次使用時選擇的項目。

如何隱藏帶有複選框的列,以便它們不可見並且不會消耗屏幕上的任何空間?

在此先感謝...

回答

3

QSS變通方法QComboBox

的艱難逼平話題如果不使用QSS塊時,QComboBox畫有其OS-Look-和感覺。如果您開始指定QSS規則,則QComboBox的部分或全部子控制開始失去操作系統外觀。在最糟糕的情況下,您必須現在指定QSS中的所有屬性。

本文的主題是由QStyleViewItem類繪製的選擇指示符,這是一個在QT源內的.../src/gui/widgets/qcombobox_p.h中實現的呈現助手。這個功能似乎是不可能被QProxyStyle的一個子類修改的,它可以用於其他情況下的硬佈局問題。

然而,我發現在QSS的溶液通過指定規則精心選擇的組:

/* Background color of popup-list.*/ 
QComboBox QListView{ 
    background-color:white; 
    border:1px solid gray; 
} 
/* Needed to complete the rule set. */ 
QComboBox::item:alternate { 
    background: white; 
} 
/* Color of the selected list item. */ 
QComboBox::item:selected { 
    border: 1px solid transparent; 
    background:yellow; 
} 
/* Indicator will shine through the label text if you don't make it hidden. */ 
QComboBox::indicator{ 
    background-color:transparent; 
    selection-background-color:transparent; 
    color:transparent; 
    selection-color:transparent; 
}