2016-10-07 96 views
0

我有QComboBox和一個設置QComboBox字體大小的樣式表。以前我使用「的addItem」添加項目QComboBox,但由於性能問題,我使用模型視圖模型我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