使用QStandardItemModel的QComboBox样式表设置字体

Set font using stylesheet for QComboBox with QStandardItemModel

本文关键字:设置 字体 样式 QComboBox QStandardItemModel 使用      更新时间:2023-10-16

我有QComboBox和一个样式表,用于设置QComboBox的字体大小。以前我使用'addItem'添加项目到QComboBox,但由于性能问题,我使用模型视图模型为我的QComboBox

QStandardItem modelItem = new QStandardItem;
modelItem->setText("TEST");
QStandardItemModel model = new QStandardItemModel;
model->appendRow(modelItem);
QListView listView = new QListView;
comboBox->setView(listView);
comboBox->setModel(model);

这就是我的代码的大致样子。当我点击我的组合框时,我如何使用样式表来增加列表中的字体大小?我以前的样式表工作正常,直到我修改我的代码使用QStandardItemModel和QListView。

自定义您自己的QStandardItem,并使您的模型返回Qt::FontRole所需的字体:

QVariant MyCustomModel::data(const QModelIndex &index, int role) const {
     if (role == Qt::FontRole) {
         // Custom your font
         QFont font;
         font.setBold(true);
         return font;
     } else if (role == Qt::ForegroundRole) {
         return QColor(Qt::red); // QBrush color
     } else {
         [..]
     }
}