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

时间:2016-10-07 06:18:20

标签: c++ qt qcombobox qlistview

我有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。

1 个答案:

答案 0 :(得分:0)

自定义您自己的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 {
         [..]
     }
}