Установите шрифт с помощью таблицы стилей для QComboBox с QStandardItemModel

У меня есть QComboBox и таблица стилей, которая устанавливает размер шрифта для QComboBox. Раньше я добавлял элементы в QComboBox с помощью addItem, но из-за проблем с производительностью я использую модель представления модели для своего 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.


person Cherple    schedule 07.10.2016    source источник
comment
просто добавьте эту строку: comboBox->setStyleSheet("QListView { font: 20pt; }");   -  person Devopia    schedule 07.10.2016


Ответы (1)


Настройте свой собственный 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 {
         [..]
     }
}
person mohabouje    schedule 07.10.2016
comment
modelItem->setData(myFont, Qt::FontRole) в этом случае достаточно. - person ilotXXI; 07.10.2016