例如:
我創建了一個QString a,代碼如下:
QString a;
a.append(QString("<font style='background-color:#ffcccc; color:red;'>%1</font>").arg("aaa"));
ui->tableView->setShowGrid(false);
QStandardItemModel* model = new QStandardItemModel(10,1);
ui->tableView->setModel(model);
model->setItem(0, 0, new QStandardItem(a));
那怎么讓他在Qtableview中顯示出本有的顏色,而不是顯示css代碼呢?
運行后 ,只顯示帶有css代碼的QString a 而不是有顏色的QString。
uj5u.com熱心網友回復:
默認的itemDelegate是不處理html的,都作為plain text顯示,你想要顯示html的話要自己寫delegateuj5u.com熱心網友回復:
哦~原來是這樣啊,大佬有沒有合適的鏈接發給我參考下寫Delegate?uj5u.com熱心網友回復:
要自己重寫來顯示html這個修改量是比較大的,我覺得你如果只是要修改一整個item的顏色的話,簡單一點還是不要搞html了直接用QStandardItem::setForeground和QStandardItem::setBackground就可以了
當然如果你對自定義item顯示比較有興趣的話還是可以自己搜搜itemDelegate相關的知識,還是比較復雜的
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/29001.html
標籤:Qt
