2011-12-07 86 views

回答

2

如果您的意思是您希望在組合框顯示其元素(即處於「下降」狀態)時選定的項目顯示爲不同,您可以更改調色板或樣式中的突出顯示和高亮文本的顏色內QAbstractItemView

#include <QtGui> 

int main(int argc, char **argv) { 
    QApplication app(argc, argv); 

    QComboBox cb; 
    cb.addItem("Item 1"); 
    cb.addItem("Item 2"); 
    cb.addItem("Item 3"); 
    cb.show(); 

    QPalette p = cb.palette(); 
    p.setColor(QPalette::HighlightedText, QColor(Qt::red)); 
    p.setColor(QPalette::Highlight, QColor(Qt::green)); 
    cb.setPalette(p); 

    // OR ... 
    // cb.setStyleSheet("QComboBox QAbstractItemView { " 
    //     "selection-background-color: green; " 
    //     "selection-color: red; }"); 

    return app.exec(); 
} 

如果你僅僅意味着在其「崩潰」的元素的樣式狀態,我會看看的例子Qt的樣式表參照的「Customizing QComboBox」一節你是什麼試圖去做。

+0

謝謝你的回答!我只是想改變組合框的下拉項選擇。我不想使用背景顏色進行選擇。我想使用底部邊框。我設法用QMenu做到這一點: QMenu :: item { border-bottom:5px solid white; margin:3px; } QMenu :: item :: selected { border-bottom:5px solid black; margin:3px; } 並希望使用組合框下拉項目... –

11

的解決方案是

  • 創建一個ListView對象
  • 設置其樣式表
  • 使用它作爲組合框

這裏的觀點是如何:

int main(int argc, char *argv[]) 
    { 
    QApplication app(argc, argv); 
    QMainWindow * mainWindow = new QMainWindow(); 
    QComboBox * combo = new QComboBox(mainWindow); 
    QListView * listView = new QListView(combo); 
    combo->addItem("foo"); 
    combo->addItem("bar"); 
    combo->addItem("foobar"); 
    combo->addItem("fooooo"); 

    listView->setStyleSheet("QListView::item {        \ 
          border-bottom: 5px solid white; margin:3px; } \ 
          QListView::item:selected {      \ 
          border-bottom: 5px solid black; margin:3px; \ 
          color: black;         \ 
          }            \ 
          "); 
    combo->setView(listView); 


    mainWindow->show(); 
    app.exec(); 

    return 0; 
    } 

備註: 我認爲,according to the Qt docs應用這種風格也應該工作......但它不。

QComboBox QAbstractItemView::item { 
    border-bottom: 5px solid white; margin:3px; 
} 
QComboBox QAbstractItemView::item:selected { 
    border-bottom: 5px solid black; margin:3px; 
} 
+0

謝謝!但還有一個問題......如何擺脫薄選框?看例子:http://vlasovsoft.net/images/1.png –

+5

事件更好的解決方案在這裏展示http://stackoverflow.com/questions/13308341/qcombobox-abstractitemviewitem?rq=1 – bkausbk

相關問題