2016-10-07 11 views
0

У меня есть QComboBox и таблица стилей, задающая размер шрифта для QComboBox. Ранее я добавил элементы в QComboBox с помощью «AddItem», но из-за проблем с производительностью я использую модель модель представления для моего QComboBox
Установить шрифт, используя таблицу стилей для QComboBox с QStandardItemModel

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.

+0

просто добавьте эту строку: 'comboBox-> setStyleSheet ("QListView {шрифта: 20pt;}");' ' – Devopia

ответ

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 { 
     [..] 
    } 
} 
+0

modelItem-> setData (myFont, Qt :: FontRole) 'достаточно в этом случае. – ilotXXI