qt - QComboBox下拉列表-设置选中项样式

标签 qt qcombobox

是否可以设置QComboBox下拉列表的选定项样式(Qt样式表)?

最佳答案

解决办法是

  • 创建一个ListView对象
  • 设置其样式表
  • 将其用作 ComboBox 的 View

方法如下:

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

关于qt - QComboBox下拉列表-设置选中项样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417038/

相关文章:

c++ - Qt : How to get QComboBox item text at an arbitrary index (not the currently selected item)

python - 如何使用 ExtendedComboBox 在 ui 文件中工作?

python - 如何使用 QComboBox 作为 QTableView 的委托(delegate)

qt - 如何循环 QAbstractItemView 索引?

c# - 在 Visual Studio v.09 中使用 C#/.NET 的 Qt?

c++ - Qt 5.2 - 如何将文本链接添加到 UI 中

c++ - 捕获 QComboBox 中的文本更改事件

c++ - 使用 Qt 和 Boost 时出现链接器错误

c++ - 无法在 Qt-Embedded 4.7.3 中显示汉字

c++ - 如何在 QComboBox 上设置不可选择的默认文本?