我目前在QStandardItem
裏面有文字「mm3」,現在假設它是毫米立方體。在視圖中,我有沒有辦法讓mm^3(即上標3)?QStandardItem內部的超級腳本文本
1
A
回答
0
您應該使用sup
HTML標記以擁有超級腳本。所以mm<sup>3</sup>
在支持豐富文本的小部件中會產生超級腳本。
在這裏您應該有一個自定義委託來顯示特定列的富文本。只需創建一個自定義QStyledItemDelegate
。這可能是這樣的:
class RichTextDelegate: public QStyledItemDelegate
{
public:
RichTextDelegate(QObject *parent = 0);
void paint(QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index) const;
};
RichTextDelegate::RichTextDelegate(QObject *parent):QStyledItemDelegate(parent)
{
}
void RichTextDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
if(option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
painter->save();
QTextDocument document;
document.setTextWidth(option.rect.width());
QVariant value = index.data(Qt::DisplayRole);
if (value.isValid() && !value.isNull())
{
document.setHtml(value.toString());
painter->translate(option.rect.topLeft());
document.drawContents(painter);
}
painter->restore();
}
你應該爲特定的列設置項目委託:如果你設置成一排mm<sup>3</sup>
具體列示範文本
現在,這將是正常顯示:
model->item(rowIndex, colIndex)->setText(mm<sup>3</sup>);
0
對於呈現出標的特定情況下「3」,另一種選擇是使用相應的Unicode符號 - Qt的文本渲染應該找到一個合適的字形無論是你的主字體還是後備字體。然而,這比上面的答案要少得多 - 它只適用於各種通常定義的上標。
相關問題
- 1. 內部腳本
- 2. 從pdf中提取文本時不包括超級腳本
- 3. document.write腳本內部不執行腳本
- 4. 如何將超級腳本或腳標轉換爲C中的正常文本#
- 5. 爲textView創建超級腳本
- 6. maven zip超級jar和shell腳本
- 7. Ruby:使用腳本內部的外部腳本進行比較
- 8. PHP內部文字腳本 - .tpl
- 9. Knockoutjs超級基本
- 10. 節點的內部文本忽略兒童的內部文本
- 11. 如何獲取java腳本中的節點內部文本?
- 12. 菜單中的超級文本顏色?
- 13. 浮動文本內部的文本
- 14. Vim(腳本)L文件瀏覽器/超級鏈接
- 15. 從shell腳本內部的nohup命令阻止腳本exeuction
- 16. Perl腳本調用內部的bash腳本,用系統命令」
- 17. 從腳本到腳本內部PHP代碼的變量
- 18. JavaScript腳本元素設置內部文本
- 19. bash腳本超時
- 20. PHP腳本超時
- 21. JavaScript超時腳本
- 22. 刪除文本文件中的所有超鏈接,linux腳本
- 23. 從腳本(初級)
- 24. 部分文本替換爲腳本
- 25. HTML文檔頭部的外部腳本是否保證在正文內包含的腳本之前執行?
- 26. EXTJS - 內部腳本的Ext.require和onReady()
- 27. 腳本不正確內部的UpdatePanel
- 28. 查找執行腳本的iframe內部
- 29. grep的內部shell腳本不工作
- 30. 腳本標記內部的玉條件