QComboBox drop-down list - set selected item style

后端 未结 3 1277
走了就别回头了
走了就别回头了 2021-01-12 00:49

Is it possible to set selected item style (Qt style sheet) of the QComboBox drop-down list?

3条回答
  •  一生所求
    2021-01-12 01:25

    The solution is to

    • create a ListView object
    • set its stylesheet
    • use it as the view of the ComboBox

    Here is how:

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

    Remark: I think, according to the Qt docs applying this style should also work...but it does not.

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

提交回复
热议问题